一、List列表与Set列表的区别
List列表是有序、可以重复、线程不安全的列表,Set是无序、不能重复、线程不安全的列表。但List和Set可以通过方法来转换为线程安全的,加互斥锁。
Set<Long> set=new HashSet<>(); // 转换为线程安全的集合 Collections.synchronizedSet(set); List<Long> lists=new ArrayList<>(); Collections.synchronizedList(lists);
只听到从知秋君办公室传来知秋君的声音: 欲把西湖比西子,淡妆浓抹总相宜。有谁来对上联或下联?
二、List与Set的转换
1) List转换为set
此代码由一叶知秋网-知秋君整理List<Long> ids=new ArrayList<>(); HashSet<Long> set=new HashSet<>(ids);
2) Set转换为List
HashSet<Long> set=new HashSet<>(); List<Long> ids=new ArrayList<>(set);
此处都可以使用 addAll()方法来替换。
需要注意的是: List转换为Set的时候,当有重复数据时,转换为出现数据丢失的情况,因为Set集合不允许有重复数据。