Java List
List列表是有序、可以重复、线程不安全的列表。
常见实现类如下:
- ArrayList:允许对元素进行快速随机访问,从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动、代价比较高,因此,它适合随机查找和遍历,不适合插入和删除;
- Vector:Vector属于线程安全级别的List,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销,主要是在方法上用synchronized修饰;
- LinkedList:很适合数据的动态插入和删除,随机访问和遍历速度比较慢,可以当作堆栈、队列和双向队列使用。
Java Set
Set是无序、不能重复、线程不安全的列表。
常见实现类有:HashSet、TreeSet和LinkedHashSet。
HashSet是Set接口的一个实现类,其实现类除HashSet之外,还有TreeSet,LinkedHashSet。
继承结构如下图所示:
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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》