Java List转换Set详解(2步搞定)

Java List转换Set详解(2步搞定)-mikechen

Java List

List列表是有序、可以重复、线程不安全的列表。

常见实现类如下:

  • ArrayList:允许对元素进行快速随机访问,从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高,因此,它适合随机查找和遍历,不适合插入和删除;
  • Vector:Vector属于线程安全级别的List,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销,主要是在方法上用synchronized修饰;
  • LinkedList:很适合数据的动态插入和删除,随机访问和遍历速度比较慢,可以当作堆栈、队列和双向队列使用。

 

Java Set

Set是无序、不能重复、线程不安全的列表。

常见实现类有:HashSetTreeSet和LinkedHashSet。

HashSet是Set接口的一个实现类,其实现类除HashSet之外,还有TreeSet,LinkedHashSet。

继承结构如下图所示:

Java List转换Set详解(2步搞定)-mikechen

 

 

List转Set

List和Set可以通过方法来转换,如下所示:

1.List转换为set

//List转Set
Set<String> set = new HashSet<>(list);

 

2.Set转换List

//Set转List 
List<String> list1 = new ArrayList<>(set);

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法