List与Set都是接口Collection的子接口,Collection源代码中有一些帮助实现基本的存取操作的抽象方法,主要有add(),addAll(),iterator(),remove(),size(),在Collection的子接口List、Set以及子类ArrayList、LinkedList、Vector、HashSet、TreeSet都重写了这些方法并且经常被使用。
ArrayList是List的子类,它通过封装一个数组进行元素的存取,所以通过下标调用指定元素的效率高,但是对元素的其他操作(存储、移除)的效率则较低。
LinkedList是list的子类,在LinkedList类中定义了一个内部类Link<E>,包含三个变量:指向上一个元素的Link<E>型的previous,存储元素的E型的data,指向下一个元素的Link<E>型的next,LinkedList采用双向链表的形式存取元素,存储、移除元素的效率较高而读取指定元素的效率较低,但是我们在使用上基本上感觉不到差异。
Vector与ArrayList大同小异,但是vector能够做到与线程同步
Set的子类主要有HashSet和TreeSet,这两种集合框架元素的存储都是无序的并且元素不能重复。故调用元素时不能通过下表而常常需要通过迭代器调用,或者通过toArray()方法返回一个数组从而实现元素的调用。
Map通过键-值对来存储元素,即一个键对应一个值的映射关系,键不能重复,在对元素的存取操作中,键起到十分重要的作用。Map的子类主要有HashMap,TreeMap
ArrayList是List的子类,它通过封装一个数组进行元素的存取,所以通过下标调用指定元素的效率高,但是对元素的其他操作(存储、移除)的效率则较低。
LinkedList是list的子类,在LinkedList类中定义了一个内部类Link<E>,包含三个变量:指向上一个元素的Link<E>型的previous,存储元素的E型的data,指向下一个元素的Link<E>型的next,LinkedList采用双向链表的形式存取元素,存储、移除元素的效率较高而读取指定元素的效率较低,但是我们在使用上基本上感觉不到差异。
Vector与ArrayList大同小异,但是vector能够做到与线程同步
Set的子类主要有HashSet和TreeSet,这两种集合框架元素的存储都是无序的并且元素不能重复。故调用元素时不能通过下表而常常需要通过迭代器调用,或者通过toArray()方法返回一个数组从而实现元素的调用。
Map通过键-值对来存储元素,即一个键对应一个值的映射关系,键不能重复,在对元素的存取操作中,键起到十分重要的作用。Map的子类主要有HashMap,TreeMap