List 和 Set的区别?

1、List,Set都是继承自Collection接口,List的实现类有 ArrayList,Vector 和 LinkedList。Set 的实现类有 HashSet 和 TreeSet

2、List特点:元素有放入顺序,元素可重复 

Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想要的值。)

3.Set一个是存储单列数据的集合

List另一个是存储键和值这样的双列数据的集合,List 中存储的数据是有顺序,并且允许重复; Map 中存储的数据是没有顺序的,其 key 是不能重复的,它的值是可以有重复的。

4.Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。 

你可能感兴趣的:(java,数据结构,开发语言)