欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

set list map set如何去重 map如何排序

程序员文章站 2022-05-23 11:07:51
...
Set(集)   List(列表)   Map(键值)  

Set是最简单的一种集合。集合中的对象不按特定的方式排序(无序),并且没有重复对象,元素在集合中的位置是由元素的hashcode值决定的。
HashSet : HashSet类按照哈希算法来存取集合中的对象,存取速度比较快

List的特征是其元素以线性方式存储,集合中可以存放重复对象,有序
LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢
ArrayList:底层基于数组结构,查询速度快,增删改速度慢

voctor 底层是数组结构线程安全,增删改慢,查询慢

Map(键值) Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。 Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。无序,键不能键重复,值可以重
HashMap:非线程安全,效率高,便于索引,支持null值和null键,是map的一个子集合
LinkHashMap:是hashmap的一个子类,保存了插入的顺序 ,

HashTable线程安全不支持null键和null值,线程安全,由同步的代码块
map集合排序:

  1. 反射map去除所有key, 存入List或Array. 注(list操作较方便, 可以直接toArray)
  2. 利用Array.sort()方法进行排序.
  3. 按排序后的顺序取出key, 然后通过key取Map, 即可获得排序后的Map

简单的代码示例:

List list = new ArrayList(map.keySet());
Object[] ary = list.toArray();
Arrays.sort(ary);
list = Arrays.asList(ary);
for (Object o : list) {
System.out.println(map.get(o));
}

list集合去重根据hashset
public static List removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
return list;
}

相关标签: 知识梳理