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;
    }
}

 

posted on 2017-12-19 21:19  浮音  阅读(192)  评论(0)    收藏  举报