collection集合接口类

Conllection集合接口框架分为  list列表、set集合

Conllections工具类也叫帮助类(静态方法,集合搜索、排序和线程安全等操作)

Map            集合接口框架有 map集合、Conllection和Map是平级的。

Conllection集合框架主要实现comparable和comparator 接口。

  • list集合接口(ArrayList、Vector、LinkList)

   ArrayList  有序集合、底层:动态数组 、数据允许重复、线程不安全(如果一个线程访问,最好用ArrayList,不考虑线程安全,效率会很高 )、java2提供、数据增长策略1.5倍,可设置初始容量大小。

   Vector       有序集合、底层:数组、数据允许重复、线程安全(如果多个线程访问,最好用Vector,不需要去考虑线程安全的代码 )、java一诞生提供的、数据增长策略2倍,可设置初始容量大小的同时也可以设置增长空间大小。

   LinkList     底层:双向链表存值,前后遍历,线程不安全,

  • set集合接口(hashset)

   set 无序集合、无重复元素(基于hashMap实现)、底层结构是哈希表、可以有null值,基于hashcode的某种运算方式来存值,不是按照hashcode的大小来存值。

HashSet底层数据结构是HashMap,通过Map的put方法存储新元素;put方法首先会通过hash(key)方法会判断key值中是否已存在,如果key存在,则只会把新的value赋值给key(onlyIfAbsent属性默认false)从而保证了key的唯一性。

set集合怎么区分重复:使用equals方法判断,决定引入值是否指向同一对象,内容相等,覆盖,返回真值。

  • Map集合接口(hashMap、hashTable、TreeMap、linkedHashMap)

  • Map集合键值不能重复,但value可以重复。

   hashMap      无序集合,是HashTable轻量级实现、线程不安全、允许null值为key键或者Value键,有containskey和containsvalue方法,基于java1.2 引进的Map,底层:数组+链表,数组存值,链表存哈希值

   hashTable    无序集合, 线程安全(不考虑线程安全代码,也是同步的)、不允许null值为key键或者Value键,有contains方法,继承Dictionary类、底层:数组+链表,加载同步锁

   TreeMap      有序集合(默认是key升序,按照Key的自然顺序或是Comparator 的顺序进行排序),底层:双向链表

   linkedHashMap  有序集合(数据插入顺序),底层:红黑树

方法:  

  • isEmpty()   集合是非为空
  • set    替换下标元素
  • contains  存指定值
  • indexof 是否有存在下标,不存在出现0

遗留问题

1.如果两个集合对象中的用equals方法比较,如果相等,那么hashcode是否相等?

答案:相等,如果equals 相等,那么hashcode值必须相等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值