java集合类

来源:互联网 发布:优盘数据恢复实例 编辑:程序博客网 时间:2024/06/08 19:01

java集合架构支持3种类型的集合:规则集(Set),线性表(List),和图(Map),分别定义在Set,List,Map中。Set实例存储一组互不相同的元素(集合),List实例存储一组顺序排列的元素(表),Map存储一组 对象---关键值的映射。

以下为他们的总体架构:

Collection接口: 

       Set接口:

            HashSet具体类
            LinkedHashSet具体类
            TreeSet具体类
       List接口: 
            ArrayList具体类
            LinkedList具体类
            向量类Vector(线程安全,同步)具体类
            Stack具体类
Map接口:
       HashMap类
       LinkedHashMap类

       Hashtable类

       TreeMap类


总结:

List有顺序有重复没有排序,set无重复有排序,mapkey也和set一样。如果想跟List一样需要有插入元素的顺序,那么就可以使用LinkedHashSet或者LinkedHashMap

ListSet都实现了collection接口。

Collections是其封装类。。实现了一系列的集合操作方法。比如排序sort等等。

Arrays类:提供了对数组排序,查找,比较,填充元素的各种静态方法。

Map下的HashMap和Hashtable的区别:
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable.


问题:

ArrayList的大小是如何自动增加的

当有人试图在arraylist中增加一个对象的时候,Java会去检查arraylist,以确保已存在的数组中有足够的容量来存储这个新的对象。如果没有足够容量的话,那么就会新建一个长度更长的数组,旧的数组就会使用Arrays.copyOf方法被复制到新的数组中去,现有的数组引用指向了新的数组

把某个ArrayList复制到另一个ArrayList中去的几种实现方式:

  1. 使用clone()方法,比如ArrayList newArray = oldArray.clone();
  2. 使用ArrayList构造方法,比如:ArrayList myObject = new ArrayList(myTempObject);
  3. 使用Collections的copy方法。





  
0 0