在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操做成批的数据或对象元素极为方便。这些接口和类有不少对抽象数据类型操做的API,而这是咱们经常使用的且在数据结构中熟知的。例如Map,Set,List等。而且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也能够以这个集合框架为基础,定义更高级别的数据抽象,好比栈、队列和线程安全的集合等,从而知足本身的须要。
Java2的集合框架,抽其核心,主要有三种:List、Set和Map。以下图所示: java
须要注意的是,这里的 Collection、List、Set和Map都是接口(Interface),不是具体的类实现。 List lst = new ArrayList(); 这是咱们日常常常使用的建立一个新的List的语句,在这里, List是接口,ArrayList才是具体的类。
经常使用集合类的继承结构以下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Map<--SortedMap<--TreeMap
Map<--HashMap
程序员
Set:不能包含重复的元素。算法
List:是一个有序的集合,能够包含重复的元素。提供了按索引访问的方式。编程
Map:包含了 key-value 对。Map 不能包含重复的 key。安全
List总结: 数据结构
Set总结: 框架
Map:
Map 是一种把键对象和值对象进行关联的容器,而一个值对象又能够是一个Map,依次类推,这样就可造成一个多级映射。Map有两种比较经常使用的实现:HashMap和TreeMap。 数据结构和算法
键和值的关联很简单,用put(Object key,Object value)方法便可将一个键与一个值对象相关联。用get(Object key)可获得与此key对象所对应的值对象。 线程