Java中的集合类比较

在Java中集合数据结构有:List /Set/Map

实现List接口的子类有:ArrayList/LinkedList/Vector

实现Set接口的子类有:HashSet/TreeSet

实现Map接口的子类有:HashMap/TreeMap

Vector 和Array List 的区别:

1、Vector使线程同步的,所以它也是线程安全的,而array list 是线程异步的,是不安全的,如果不考虑线程安全的因素,一般用arraylist效率要高一些;

2、如果集合中的元素数目大于目前集合数组的长度时,vector增长率为目前数组长度的100%,而Array List 增长率为目前数组的50%,如果在集合使用数量比较大的数据用vector有一定的优势;

3、如果查找一个指定位置的数据,vector和arraylist使用的时间是相同的,如果频繁的访问数据,这个时候使用vector和arraylist都可以,而如果移动一个指定位置会导致后面的元素都发生移动,这个时候应该考虑道使用linkList ,因为它移动一个指定位置的数据时其他的元素位置不动;

arrayList 和linkedList的区别:

1、arrayList是实现了基于动态数组的数据结构,Linked List 基于链表的数据结构;

2、对于随机访问get和set,arraylist觉得要优于linklist,因为linklist要移动指针。

3、对于新增和删除操作add和remove,Linked List 比较占优势,因为Array List 要移动数据,这一点看来实际的情况;

Hash Map和TreeMap 的区别:

1、hashMap通过hashcode 对其内容进行快速的查找,而TreeMap中所有的元素都保持这某种固定的顺序,如果你需要得到一个有序的结构你就要使用TreeMap(hashmap 中元素的排列顺序是不固定的)

2、在map中插入删除和定位元素,hashmap是最好的选择,但如果您要是按自然顺序或者自定义顺序遍历键,那么TreeMap会更好,使用hashMap一起添加的键类明确定义了hashcode()和equals()的实现

HashTable 和hashmap的区别:

1、同步性:hashtable 是线程安全的,也就是说是同步的,而hanshmap是线程不安全的,不是同步的

2、hashMap允许存在一个为null的key多个为null的value

3、hashtable的key和value都不允许为null

 

 

转载于:https://my.oschina.net/u/2475253/blog/3067754

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值