码迷,mamicode.com
首页 > 编程语言 > 详细

java集合总结

时间:2015-03-12 01:08:49      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:vector   多线程   null   java   接口   

一.HashSetTreeSet的异同:

相同点:都实现了set接口,元素不会重复,插入重复的对象会覆盖掉。

不同点:

1HashSet 是哈希表实现的,无序的集合;可以放入null,但只能放入一个null,两者中的值都不能重复;HashSet要求放入的对象必须实现HashCode()方法,放入的对象,是以hashcode码作为标识的

2TreeSet 是红黑树实现的,排序的集合,数据是自动排好序的(元素对象必须实现

Comparable接口),不允许放入null值。

 

二.ArrayList Vector的异同:

相同点:ArrayListVector都实现了List接口,保存插入的顺序,允许重复。低层都封装了一个一维对象数组,默认初始容量都为10List接口中如果加入的元素数量大于低层数组长度时,低层数组就会重新创建elementData =Arrays.copyOf(elementData, newCapacity);

都可以使用iterator进行迭代。

不同点:

1.:Vector是同步(线程安全)的,运行效率要低一些,主要用在多线程环境中;

ArrayList是不同步的,适合在单线程环境中使用。

 

Java.util.Stack类继承了Vector类,对应数据结构中以“后进先出”方式存储和操作数据的,Stack类使用vector封装的底层数组来实现的。

 

LinkedList此类实现了队列Queue)接口低层是基于链表的数据结构,以“先进先出”的方式存储和操作数据的。

三.Map结构:HashMap,Hashtable,TreeMap的异同

相同点:HashMapHashtabel低层是基于hash表来实现键值映射结构的;

        HashtableHashMap的用法格式完全相同。       

   不同点:

1)。Hashtable中元素的键和值均不允许null,HashMap则允许。

    2)。Hashtable是同步的,即线程安全的,效率相对要低一些,适合在多线程环境下使用;而HashMap是不同步的,效率相对高一些,提倡在单线程环境中使用。

    3)。HashMap的默认初始容量是16,加载因子是0.75,

        Hashtable的默认初始容量是11,加载因子是0.75.

  

   Properties类继承Hashtable类,表示了一个持久的属性集。Properties可保存在流中或从流中加载。

   TreeMap:实现了SortedMap接口(基于红黑树的实现)。构造一个新的空映射,该映射按照键的自然顺序排序。插入该映射的所有键必须实现Comparable接口

       自动升序排序。

   总结一下:HashMap除了不同步和允许使用 null 之外,HashMap类与Hashtable大致相同 


java集合总结

标签:vector   多线程   null   java   接口   

原文地址:http://6817977.blog.51cto.com/6807977/1619508

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!