java集合重点概括

              **集合

一、Collection(单列集合)
1.List(有序(存储与取出的顺序一致),可重复)
1.1. ArrayList
底层数组实现,查询快,增删慢,线程不安全,效率高。
1.2.Vector
底层数据结构是数组实现,查询快,增删慢,线程安全,效率低。

    1.3. LinkedList

底层数据结构是链表实现,查询慢,增删快,线程不安全,效率高。
2.Set(无序(存储与取出的顺序不一致),唯一)
2.1. HashSet
底层数据结构由哈希表(实际上是一个 HashMap 实例)实现,它不保证 set 的迭代顺序。
允许使用 null 元素,(只能有一个null)依赖 hashCode()和equals()方法来区分存入的元素是否相同,
来保证存储元素唯一性 。这两个方法(可自动生成)的执行顺序:
首先判断元素的
hashCode()值是否相同
否:直接存储到集合
是:继续执行equals(),看其返回值
true:
说明元素相同,就不存储
false:说明元素不同,就存储到集合

2.1.1. LinkedHashSet
底层数据结构由哈希表和链表组成。
哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。
允许使用 null 元素,(只能有一个null)
2.2. TreeSet
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:不允许为null

依靠元素比较的返回值是否为0来决定
元素的有序性:

1.自然排序(元素具备比较性)
无参构造(new TreeSet())使用的是自然排序,
让元素所属的类实现自然排序接口,

              底层用CompareTo()方法(Comparable接口)来做数据校验
            2.比较器排序(集合具备比较性)

构造方法(new TreeSet(Comparator comparator))
接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
(如果compareTo返回0;则会认为这两个对象为同一个对象所以以后对象会存不进去!
注意:不是覆盖)
二、Map(双列集合)
A:Map集合的数据结构仅仅针对键有效,和值无关。

B:存储的是键值对元素,键是唯一的,值可重复
1. HashMap
底层数据结构由哈希表实现,它不保证 set 的迭代顺序。允许使用 null 元素,

依赖hashCode()和equals()方法来区分存入的元素是否相同,来保证存储元素唯一性。

这两个方法(可自动生成)的执行顺序:
首先判断元素的hashCode()值是否相同
否:
直接存储到集合
是:继续执行equals(),看其返回值
true:说明元素相同,就不存储
false:
说明元素不同,就存储到集合

1.1. LInkedHashMap
底层数据结构由哈希表和链表组成。

哈希表保证元素的唯一性,链表保证元素有序(存储和取出一致)。

Hashtable与HashMap的区别
Hashtable:线程安全,效率低,不允许null键和null值

HashMap:线程不安全,效率高,允许null键和null值
3. TreeMap
底层数据结构是红黑树。(是一种自平衡的二叉树结构)
元素的唯一性:

依靠元素比较的返回值是否为0来决定
元素的有序性:
1.自然排序(元素具备比较性)
无参构造(new TreeSet())使用的是自然排序,
让元素所属的类实现自然排序接口,
底层用CompareTo()方法(Comparable接口)
来做数据校验

2.比较器排序(集合具备比较性)
构造方法(new TreeSet(Comparator comparator))
接收一个比较器接口(其实是该接口的子类对象),
底层使用Compare()方法来做数据校验
(如果比较的两个值返回为0;
注意:value值会覆盖)

 (jdk1.5以后)增强for循环只能给实现了Iterable接口的使用。
                       (比如list set,数组)(map没有实现这个接口)
                           循环时候修改元素(添加移除等)操作会报错**
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值