Java中集合类List与Set的区别

一、List

List接口有两个重要的类:ArrayList与LinkedList;

ArrayList可以认为是长度可变的数组,方便随机访问(Index);

LinkedList以链表的形式存储,进行插入删除操作时比较方便;


以ArrayList为例,由于是长度可变的数组,那么自然拥有数组的特性:

1、利用add时按照顺序排序;

2、元素内容可以相同;

3、可以利用数组的索引(Index)获得元素(list.get(i)),也可以利用迭代器获得元素(Iterator);

Java中集合类List与Set的区别Java中集合类List与Set的区别


二、Set

Set接口也有两个重要的类:HashSet类与TreeSet类;

HashSet由Hash表支持,不保证Set的迭代顺序;

TreeSet按照自然顺序(比大小)递增排序;


以TreeSet为例,有以下特性:

1、利用add时按照自然顺序排序;

2、元素内容不可以相同

3、只能用迭代器获得元素

Java中集合类List与Set的区别Java中集合类List与Set的区别