先搞清楚
是否有序指的是集合中的元素是否会按照插入的先后顺序来存储,而不是指集合中的元素本身是否有序
List
public interface List<E> extends Collection<E>
List 中的元素都是有序的,其常见的实现类有 ArrayList、LinkedList 和 Vector,这三者都是有序的
Set
public interface Set<E> extends Collection<E>
Set 中的元素都是无序的,并且不能重复
它是根据对象的哈希值来确定元素在集合中的存储位置,所以是无序的;保证元素唯一性的方式依赖于 hashCode() 和 equals() 方法
其常见的实现类有 HashSet、LinkedHashSet,HashSet 的底层实现其实是由 HashMap 支持的,因此其存储结构其实也是哈希表,但要注意 Set 是单列集合,即不是以<key, value>的形式存储的
注意:LinkedHashSet 是有序的
Map
public interface Map<K,V>
Map 中的元素都是无序的,其实的元素是以<key, value>的形式存储的,其常见的实现类有 HashMap、TreeMap 和 LinkedHashMap
注意:LinkedHashMap 是有序的