Sunspl

Hello,everyone,i am sun. 天道酬勤,笨鳥先飛.
随笔 - 47, 文章 - 0, 评论 - 24, 引用 - 0
数据加载中……

map,set,list,等JAVA中集合解析(了解)

在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系:

           java.util
        +Collection 这个接口extends自 --java.lang.Iterable接口
           +List 接口
              -ArrayList 类
              -LinkedList 类
              -Vector 类     此类是实现同步的

           +Queue 接口
              +不常用,在此不表.

           +Set 接口
              +SortedSet 接口
                 -TreeSet 类
              -HashSet

        +Map 接口
          -HashMap 类 (除了不同步和允许使用 null 键/值之外,与 Hashtable 大致相同.)
          -Hashtable 类 此类是实现同步的,不允许使用 null 键值
          +SortedMap 接口
             -TreeMap 类

          以下对众多接口和类的简单说明:首先不能不先说一下数组(Array)
       
一、Array , Arrays

Java所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。

1、
效率高,但容量固定且无法动态改变。
array还有一个缺点是,无法判断其中实际存有多少元素,length只是告诉我们array的容量。

2、Java中有一个Arrays类,专门用来操作array。
       arrays中拥有一组static函数,
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。


二、Collection , Map

若撰写程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。

1、Collection 和 Map 的区别

容器内每个为之所存储的元素个数不同。
Collection类型者,每个位置只有一个元素。
Map类型者,持有 key-value pair,像个小型数据库。

2、Java2容器类类库的用途是“保存对象”,它分为两类,各自旗下的子类关系

Collection
       --List:将以特定次序存储元素。所以取出来的顺序可能和放入顺序不同。
             --ArrayList / LinkedList / Vector
    &