集合类层次结构关系
1. Collections(工具类) 和 Collection(集合顶层接口) 的区别
首先, “Collection” 和 “Collections” 是两个不同的概念. 从下面几幅图可知,“Collection”是集合继承结构中的顶层接口,而 “Collections” 是提供了对集合进行操作的强大方法的工具类.
图1
2. Collection继承结构
下图展示了集合类的层次结构关系:
图2
3. Map 类层次结构
下图是Map的类层次结构:
图3
4. 相关类汇总
接口 | 哈希表 | 可变数组 | 树 | 链表List | 哈希表+链表 |
---|---|---|---|---|---|
Set | HashSet | TreeSet | LinkedHashSet | ||
List | ArrayList | LinkedList | |||
Queue | |||||
Map | HashMap | TreeMap | LinkedHashMap |
5. 示例代码
下面是说明一些集合类型的简单示例:
- import java.util.*;
- public class Main {
- 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);
- }
- }
输出结果:
- ArrayList Elements
- [Program, Creek, Java, Java]
- LinkedList Elements
- [Program, Creek, Java, Java]
- Set Elements
- [tutorial, Creek, Program, Java] 数组的输出方式
- Map Elements
- {Windows=XP, Website=programcreek.com, Language=Java} 对象的输出方式