21. java之集合总结

1.ArrayList:存储有序,可重复的单一对象.底层采用Object[]存值.

优点:遍历集合和修改集合中元素效率高.
缺点:添加和删除指定索引处的元素效率低.

2.LinkedList:存储有序,可重复的单一对象.底层采用双向链表结构存值.

优点:添加和删除指定索引处的元素效率高.
缺点:遍历集合和修改集合中元素效率低;

3.HashSet:存储无序,唯一(不可重复)的单一对象.底层采用HashMap的Key存值.

优点:唯一性(去重).
唯一性:通过HashSet泛型类型中重写hashCode()和equals()来实现去重保证唯一性.

4.TreeSet:存储无序但是可排序,唯一(不可重复)的单一对象.底层采用

TreeMap的Key存值.
	注意:TreeSet一定要用排序器.如果用无参构造创建TreeSet集合,默认用的是自然排序器
		要求TreeSet泛型类型中实现自然排序器接口,重写排序方法.如果TreeSet想用自定义排序器,就得将自定义排序器的对象作为TreeSet构造方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类实现自定义排序器接口,重写排序方法,再创建对象).
	优点:唯一性(去重),可排序.
	可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
	唯一性:通过排序器的排序方法返回0表示相同元素不存来实现的.

5.HashMap:按Key-value对来存值.HashMap的Key无序的,唯一的单一对象.底层采用数组+链表 (哈希表)结构存值.

Key的唯一性:通过HashMap的Key泛型类型中重写hashCode()和equals()来实现去重	保证唯一性.

6.TreeMap:按Key-value对来存值.TreeMap的Key无序的可排序,唯一的单一对象.底层采用

红黑二叉树结构存值.
	注意:TreeMap一定要用排序器.如果用无参构造创建TreeMap集合,默认用的是
	自然排序器要求TreeMap的Key泛型类型中实现自然排序器接口,重写排序方法.
	如果TreeMap想用自定义排序器,就得将自定义排序器的对象作为TreeMap构造
	方法的参数传入(第一种:用匿名内部类实现自定义排序器对象;第二种先声明类
	实现自定义排序器接口,重写排	序方法,再创建对象).
	Key的可排序性:通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.
	Key的唯一性:通过排序器的排序方法返回0表示相同元素Key不存value覆盖来实现的.

7.能实现唯一性(去重)的集合有HashSet,HashMap,TreeSet,TreeMap都可以实现,只是原理不同.HashSet和HashMap通过重写hashCode()和equals()来实现的;TreeSet,TreeMap通过排序器的排序方法返回0来实现的.

8.能实现排序的集合有TreeSet,TreeMap,它们都是通过排序器的排序方法返回负数排在前面,返回正数排在后面来实现的.

9.要存多个相同类型数据,遍历比较多,首选ArrayList集合.
10.要存多个相同类型数据,添加和删除元素比较多,首选LinkedList集合.
11.要存多个相同类型数据,要保证元素不重复(唯一性),首选HashSet集合,
TreeSet,HashMap,TreeMap也可以实现.
12.要存多个相同类型数据,要保证元素不重复(唯一性)的同时还要排序,首选TreeSet集合,
TreeMap集合也可以实现.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值