Java-List、Set、Map集合以及Collection集合工具类

List接口特点:有序,有索引,允许重复元素
Set接口特点:无序,无索引,不允许重复元素   (注:TreeSet/MapSet是无序、二叉树排序)
Map接口特点:(双列)无序,无索引,不允许重复键值

LinkedHashSet:extends HashSet 底层是哈希表(数组+链表/红黑树)+链表:多了一条链表,保证元素有序
LinkedHashMap:extends HashMap 同上,底层是哈希表+链表:保证元素有序


注意:有序、无序及排序性质的差别:
集合的有序、无序是指插入元素时,保持插入的顺序性,即先插入的元素优先放入集合前部。 
而排序是指插入元素后,集合元素是否自然排序(升序降序)。
HashMap、 HashSet、 Hashtable 等基于哈希存储方式的集合是无序的。其它的集合都是有序的。
TreeMap TreeSet 是基于二叉树排序的。
注:Hashtable是线程安全的集合(单线程集合),速度慢,且不可存储null值/null键
(Hashtable子类Properties集合是唯一与IO流相结合的集合)
Hash表(包括HashSet、HashMap)  查询速度快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表长度>8)


JDK9中,List/Set/Map接口增加了静态方法of,可以给集合一次性添加多个元素
注:1.of方法不适用与该接口实现类
2.of方法返回值是不可改变的集合,即集合不能再使用add/put方法添加元素
3.Set接口和Map接口调用of方法时,不可添加重复元素
Collections集合工具类:
Collections.addAll(list,"a","b","c","d","e");         向集合中添加多个元素
Collections.shuffle(list);                            打乱集合中元素的顺序
Collections.sort(list);                               对集合元素进行排序(默认升序)
修改排序规则的两种方法:(常用1)
1.Comparable       自己(this)和别人(参数)比较
自己需要实现Comparable接口,重写比较规则compareTo方法
2.Comparator       找一个第三方裁判 比较两者
使用匿名内部类重写Comparator方法:Collections.sort(list,new Comparator<..>(){...});

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值