集合框架中的核心接口
接口 | 说明 | 实体类 |
Collection
| 一种基本接口,它定义了一些普通操作,通过这些操作,可以将一个对象集合当作一个独立单元来对其进行存放和处理 |
|
Set | Set接口扩展了Collection接口,用来提供集合的维护(该集合中的元素以某一排列顺序存储)所需的功能 | HashSet LinkedHashSet |
SortedSet | SortedSet接口扩展了Set接口,用来提供集合的维护(该集合中的元素以某一排列顺序存储)所需的功能 | TreeSet |
List | List接口扩展了Collection接口,用来存放某个元素序列 | ArrayList Vector LinkedList |
Map | 一种基本接口,定义了用来实现键/值(key-value)映射关系维护的操作 | HashMap Hashtable LinkedHashMap |
SortedMap | 针对以键序排列存放其映射关系的映射,该接口扩展了Map接口 | TreeMap |
集合及映射实现类表
实体集合/映射 | 接口 | 重复项 | 有序/排序 | 元素调用方法 | 实现类数据结构 |
HashSet | Set | 元素唯一 | 无顺序 | equals()、hashCode() | Hash表 |
LinkedHashSet | Set | 元素唯一 | 插入排序 | equals()、hashCode() | Hash表和双向链表 |
TreeSet | SortedSet | 元素唯一 | 排序 | equals()、compareTo() | 平衡树 |
ArrayList | List | 可以重复 | 插入排序 | equals() | 可调大小数组 |
LinkedList | List | 可以重复 | 插入排序 | equals() | 链表 |
Vector | List | 可以重复 | 插入排序 | equals() | 可调大小数组 |
HashMap | Map | 键唯一 | 无顺序 | equals()、hashCode() | Hash表 |
LinkedHashMap | Map | 键唯一 | 键插入顺序/条目访问顺序 | equals()、hashCode() | Hash表和双向链表 |
Hashtable | Map | 键唯一 | 无顺序 | equals()、hashCode() | Hash表 |
TreeMap | SortedMap | 键唯一 | 键序排列 | equals()、compareTo() | 平衡树 |
ollection和Collections的区别
首先要说的是,"Collection" 和 "Collections"是两个不同的概念;
如下图所示,"Collection"是集合类(Collection)的顶级接口,然而”Collections“是一个提供了一系列静态方法的集合工具类;
Collection的类层次结构图
Map的类层次结构图
总结
代码示例

package simplejava; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; public class Q7 { public static void main(String[] args) { List<String> a1 = new ArrayList<String>(); a1.add("Program"); a1.add("Creek"); a1.add("Java"); a1.add("Java"); System.out.println("ArrayList Elements"); System.out.print("\t" + a1 + "\n"); List<String> l1 = new LinkedList<String>(); l1.add("Program"); l1.add("Creek"); l1.add("Java"); l1.add("Java"); System.out.println("LinkedList Elements"); System.out.print("\t" + l1 + "\n"); Set<String> s1 = new HashSet<String>(); // or new TreeSet() will order the elements; s1.add("Program"); s1.add("Creek"); s1.add("Java"); s1.add("Java"); s1.add("tutorial"); System.out.println("Set Elements"); System.out.print("\t" + s1 + "\n"); Map<String, String> m1 = new HashMap<String, String>(); // or new TreeMap() will order based on keys m1.put("Windows", "2000"); m1.put("Windows", "XP"); m1.put("Language", "Java"); m1.put("Website", "programcreek.com"); System.out.println("Map Elements"); System.out.print("\t" + m1); } }
结果打印: