谈谈java中的集合框架

在这里插入图片描述

集合框架中的接口。

在这里插入图片描述
哪些集合可以存放null?
除了TreeSet和TreeMap还有HashTable不能存放null,会报空指针异常。

  • List的主要特点就是有序性和元素的可空性。 ArrayList(数组实现)和LinkedList(双向链表实现)
  • Set主要特性是唯一性。自动排序。HashSet,LinkedHashSet,TreeSet
  • Queue 特性是队列
  • Map健值对 继承自Object
    List,Set,Queue,Map参考链接

Set (无序,唯一)
HashSet
  • 底层数据结构是哈希表
  • 哈希表依赖两个方法 hashCode()和equals()
  • 执行顺序: 首先判断hashCode()值是否相同
    是:继续执行equals(),看其返回值
      true:说明元素重复不添加
      false:直接添加到集合
    否: 直接添加到集合
LinkedHashSet
  • 底层数据结构由链表和哈希表组成
  • 由链表保证元素有序
  • 由哈希表保证元素唯一
TreeSet
  • 底层数据结构是红黑树
  • 唯一性是根据比较返回值是否是0来决定
  • 排序两种方式
      自然排序:让元素所属的类实现Comparable接口
      比较器排序:让集合接受一个Comparator的实现类对象
Map
  • Map集合的数据结构仅仅对键有效与值无关
  • 存储的是健值对的形式的元素,键唯一,值可重复
HashMap
  • 底层数据结构是哈希表,线程不安全,效率高
LinkedHashMap
  • 底层数据结构由链表和哈希表组成
HashTable
  • 底层数据结构是哈希表,线程安全,效率低
TreeMap
  • 底层数据结构是红黑树
集合选取原则

是否是健值对象形式:
  是:Map
   键是否需要排序:
   是:TreeMap
   否:HashMap
  不知道就用HashMap
 否:Collection
  元素是否唯一
   是:Set
    元素是否需要排序
     是:TreeSet
     否:HashSet
    不知道就用HashSet
   否:List
    要安全吗:
     是:Vector
     否:ArrayList或者LinkedList
      增删多:LinedList
      查询多:ArrayList
     不知道就是用ArrayList

参考链接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值