集合家族

1、集合家族可分为collection和Map
2、List set继承至collection;
3、list与set的相同点与不同点
相同点:都是单列元素的集合,有一个共同的父接口Collection
区别:set里不允许有重复的元素。假设set集合里有一个A对象,现在再存进去一个B对象,但是B对象与A对象equals相等,则B对象就不能存进去,set集合的add方法有一个boolean返回值,当添加成功则返回true返回失败则返回false
list表示与先后顺序的集合,当多次调用add方法时,就想排队买火车表一样,按先来后到的顺序,有时候可以插队,可以指定存储位置,同一个对象可以可以被反复存进list中,并不是说把这个对象本身存进去,而是集合中有多个索引指向这个对象
4、map与list、set都不同
map是双列的集合,其中用put方法添加,定义put(key,value)每次存储时要存储一对key/value,不能存储相同的key,这个重复规则也是按照equals比较相等。取可以根据key获取相应的value,即get(key)获取value返回值
综上list以特定次序存储持有元素,可有重复元素,Set无法拥有重复元素,内部排序;map保持key-value值value可多值
5、ArrayList与Vector,LinkList
ArrayList与Vector,LinkList继承至list,其中,其中ArrayList与Vector底层是数组,linklist底层是双向链表,ArrayList是线程不安全的LinkList是线程不安全的,因为vector使用了synchronized方法(线程安全)
ArrayList在集合末尾添加删除元素所消耗的时间是一样的,但是在集合中间添加删除所用时间就会大大增加,但是根据索引查询的时候,速度就会很快
LinkList在集合任意地方添加删除元素时花费时间都是一样的,但是根据索引查询的时间就会多一些
6、hashset与treeset
hashset与treeset继承至set存储特点是有序不可重复
hashsat底层是hashmap,hashmap底层是hash表,treeset底层是treemap
7、hashmap与hashtable
hashmap与hashtable都属于map,但是hashmap继承至abstractMap,hashtable继承至Dictionary(已不再沿用),建议直接继承MAP,hashmap底层是hash表,hashmap是线程不安全,hashtable是线程安全的,hashmap是以2倍大小扩容,hashtable以二倍加一大小扩容;hashmap可以存在null值null键,hashtable不行;hashtable初始值是11hashmap初始值是16

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值