List和Set区别?
List和Set都是常用的集合接口,可以通过这两个接口去实现集合类。List可以实现的集合类有:ArrayList、LinkedList和Vector。Set可以实现的集合类有:HashSet和TreeSet。
List和Set的区别主要是:
List集合类中的元素是可以重复,存在下标,元素是有顺序。
Set集合类中的元素是唯一的,不存在下标,元素是无序的。
List集合类:
1、ArrayList
ArrayList是通过数组实现的,所以查询块、增删慢。它是一种线程不安全、效率高的集合类。
2、LinkedList
LinkedList是通过链表实现的,所以查询慢、增删快。它是一种线程不安全、效率高的集合类
3、Vector
Vector是通过数组实现的,所以查询块、增删慢。它是一种线程安全、效率低的集合类。(现在已经不怎么使用了)
Set集合类
1、HashSet
HashSet通过哈希码来保存元素,所以可以防止元素重复。它是一种无序的,线程不安全,运行效率高,常用的集合类
2、TreeSet
TreeSet基于树状结构,可以实现排序功能,支持自然排序(即对于基本数据类型可以实现默认升序排列)。但是如果是特殊类型,比如对象、数组、集合,则需要通过比较器对象自定义排序规则。
List 和 Set的区别?
![](https://img-home.csdnimg.cn/images/20240711042549.png)