集合框架总结

collection

map

在这里插入图片描述
Collection与Map
Java定义两种集合,这两种集合的顶层接口分别是Collection和Map,这两个接口不能直接被使用,分别代表着两种不同的容器;
Collection是存储对象元素的集合,派生出三个子接口,set,list,queue;
Map代表的是键值对集合;

List接口
(1)List接口是允许重复的,指定索引的有序集合;有两个具体实现的类,分别是ArrayList和LinkedList;
(2)ArrayList:是实现list接口的可变大小的数组;LinkedList是实现list接口的链表的可维护序列容器;
(3)ArrayList与LinkedList的区别:
两者最主要的区别在于底层的数据结构不同而带来的操作效率不同;
查找方面:数组的效率更高,可以直接根据索引查找,但是链表只能从头查找;
插入方面:如果在中间进行插入则体现了链表极大的便利性;
内存方面:数组需要申请一段连续内容,当内存不够时需要进行扩容拷贝;但是链表则是离散的存储;

set接口
(1)set接口是不包含重复元素的集合;具有三个具体实现的类,HashSet散列集,LinkedHashSet链式散列集,TreeSet树集;
(2)HashSet是基于HashMap的数据结构,LinkedHashSet是基于LinkedHashMap结构,TreeSet是基于TreeMap结构;

HashMap与HashTable
(1)HashTable是实现Key-Value映射的哈希表,允许任何非NULL对象作为key或者value,是同步方法,线程安全,但是效率低;
(2)HashMap是非同步的,允许null key或者是null value;
(3)HashMap与HashTable非常相像,只是HashTable是同步的,所以是线程安全的;而HashMap不是同步的,所以是线程非安全的;在速度上,因为HashTable需要同步,所以速度要比HashMap要慢;

HashMap与HashSet
HashSet是根据HashMap实现的,对于HashSet的函数调用都会转换为适合HashMap方法,可以理解为HashSet是HashMap的简单包装;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值