zoukankan      html  css  js  c++  java
  • Java集合框架

     1.  Java集合类概述
    A.集合的由来

       a. 处理多个相同数据我们采用数组,但数组空间固定不能动态增长,插入或删除元素比较麻烦。我们使用集合来解决这个问题

       b. 集合特点:元素类型可以不同、集合长度可变、空间不固定

       c. Java中对一些数据结构和算法进行了封装即集合。集合也是一种对象,用于存储、检索、和传输对象

       d. JCF(Java Collections Framework)集合框架。它提供了用于管理集合的接口和类

    B.Java集合框架中的三个核心接口:Set、List、Map
     
    2.Collection接口和Iterator接口

    A.  集合(Collection)接口位于Set接口和List接口的最顶层,是Set接口和List接口的父接口。定义了Collection对象共有的一些基本方法,这些方法分为基本操作、批量操作和数组操作

    B.  Iterator接口是一种用于遍历集合的接口。所谓遍历,是指从集合中取出每一个元素的过程

    3. List接口:一列数据,数据内容可以重复,以元素安插的次序来放置元素,不会重新排列

    A.  List接口的实现类具有共同的方法:

      add() :向集合中添加元素(增)

      remove() :将元素从集合中移除(删)

      get() : 从集合中获取元素(查)

      set():修改集合中的元素(改)

      size() :查看集合长度 

    B.List接口实现类的选择

       a.  ArrayList:使用最广泛,集合元素增加或删除操作不频繁时使用。最适合查询

       b.  LinkedList:当需要在集合的中间位置,频繁增加或删除元素时使用

       c.  Vector:与ArrayList类似,但Vector是线程安全的,所以性能要低于ArrayList

    4.  泛型:由于集合中保存的元素都是Object类型,当一个元素从集合中取出来后都是Object类型的对象,所以我们必须对其进行强制类型转换。为了解决这种麻烦,JDK1.5中提供了一种新的处理方式泛型。

       如:List<String> list = new ArrayList<String>();

    5. for each循环

    在JDK1.5中增加了一种新型的循环,称之为for each循环,该循环大大简化了对于集合的遍历操作

         如:for(String a : list){

        System.out.println(a);

                }

    6. Set接口:一列数据,数据内容不能重复,使用自己内部的一个排列机制放置元素

    A.  Set接口的实现类具有共同的方法:

      add() :向集合中添加元素(增)

                remove(Object o) :将元素从集合中移除(删)

      size():查看集合长度

    B.Set接口实现类的选择

       a.  HashSet:速度快,不排序

       b.  TreeSet:速度慢,排序

    7.  Map接口:一列数据对,使用自己内部的一个排列机制放置元素

    A.  Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。每个条目包括单独的两部分 :

             key

             Value

    B.  在Map中不允许出现重复的键.

    C.key 和 value 可以是任何类的实例
    D.Map接口实现类的共同方法

      put():将键值对存入集合

      get():根据键取出元素的值

      keySet():将Map中的所有键取出形成一个Set

      values():将Map中的所有值取出形成一Collection

      remove():根据键移除值

    E.Map接口实现类的选择

       a.  HashMap:速度快,不排序

       b.  TreeMap:速度慢,排序

    8.工具类Collections和Arrays

    A.  Java集合框架中提供了一个操作Set、List和Map等集合的工具类Collections,该工具类中提供了大量方法,用于对集合元素进行排序、查询、修改等操作

    B.  Java集合框架同时也提供了Arrays类用于操作数组。Arrays类包含用来操作数组(比如排序和搜索)的各种方法

    9. 古老的集合类与接口

    A.  Vector、Hashtable、Stack、Properties类以及遍历器Enumeration接口

    B.  Vector(向量)与ArrayList的用法几乎完全相同,二者之间的最大区别在于Vector类是线程安全的,而ArrayList不是

    C.  Hashtable与HashMap的用法也几乎相同,二者的关系完全类似于Vector与ArrayList的关系。Hashtable是线程安全的,而HashMap不是。 此外,Hashtable不允许key和value为null,而HashMap是允许的

    D.  Properties到现在还被频繁使用的一个类。该类用于处理属性文件。所谓属性文件就是将Map形式的键/值对数据存在一个扩展名为“.properties”的文本文件中,常用作软件的配置文件

  • 相关阅读:
    过河问题 贪心
    喷水装置2 贪心
    喷水装置 贪心算法
    大红数星星 图论 XD网络赛
    Bi-shoe and Phi-shoe 欧拉函数 素数
    c++ 打飞机游戏开发日志
    POJ 1129 Channel Allocation DFS 回溯
    POJ 2676 Sudoku
    LibreOJ #100. 矩阵乘法
    BZOJ 1009: [HNOI2008]GT考试
  • 原文地址:https://www.cnblogs.com/XQiu/p/5087910.html
Copyright © 2011-2022 走看看