1、集合继承图
1、Collection<E>继承了Iterable<E>

2、Collection<E>的主要的子接口有List<E>,Set<E>,Queue<E>
3、所有Collection都可以用foreach遍历
以下是集合继承图:

2、List
List是一个有序集,元素的序号从0开始算起。
2.1 ArrayList
ArrayList是基于数组实现的,因此获取(get)和替换元素(set)很快,而添加元素可能会需要扩容,将原数组复制到新数组中,插入元素时需要将插入元素后面的元素往后移动,删除元素时则是需要往前移动,因此适合查询和替换元素,不适合频繁的添加、插入和删除操作。
2.2 LinkedList
LInkedList使用双链表实现,对于获取(get)和替换(set)操作,需要遍历双链表,效率很低,添加元素时,支持链表头部(addFirst)和尾部(add)添加,效率很高,对于插入和删除操作,也是需要遍历链表,效率较低。
3、Set
Set是无序不重复集,常用的方法有:
4、Map
4.1 TreeMap
TreeMap是key值有序的映射,需要key实现Comparator接口。
TreeMap<Integer, String> map = new TreeMap<>(new Comparator<Integer>() { @Override public int compare(Integer num1, Integer num2) { return num2 - num1; } }); TreeMap<Person, String> map2 = new TreeMap<>();
其中Person类的实现为:
public class Person implements Comparable<Person> { private String name; private int age; @Override public int compareTo(Person person) { return person.age - this.age; } }
浙公网安备 33010602011771号