一.Java集合类框架
Java集合大致可分为Set、List和Map三种体系,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合;从Java5以后,Java又增加了Queue体系集合,代表一种队列集合的实现。
Java的集合类主要由两个接口派生而来:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含一些子接口或实现类。Collection和Map接口、子接口及其实现类的继承树如下图所示。对于Set、List、Queue和Map四种集合,最常用的是HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList和HashMap、TreeMap等。
二.Collection和Iterator接口
1.Collection接口
Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于Set集合,也可以用于操作List和Queue集合。Collection接口里定义的方法见Java API文档。
import java.util.*; public class CollectionTest { public static void main(String[] args) { Collection c=new ArrayList(); //虽然集合里不能放基本类型的值,但Java支持自动装箱 //关于自动装箱,见http://www.cnblogs.com/danne823/archive/2011/04/22/2025332.html //添加元素 c.add("孙悟空"); c.add(6); System.out.println("c集合的元素个数为:"+c.size()); //删除指定元素 c.remove(6); System.out.println("c集合的元素个数为:"+c.size()); //判断是否包含指定字符串 System.out.println("c集合是否包含\"孙悟空\"字符串:"+c.contains("孙悟空")); c.add("Java"); System.out.println("c的集合元素:"+c); Collection books=new HashSet(); books.add("Java"); books.add("C++"); System.out.println("c集合是否完全包含books集合?"+c.containsAll(books)); //用c集合减去books集合里的元素 c.removeAll(books); System.out.println("c的集合元素:"+c); //删除c集合里的所有元素 c.clear(); System.out.println("c的集合元素:"+c); System.out.println("books的集合元素:"+books); //books集合里只剩下c集合里也包含的元素 books.retainAll(c); System.out.println("books的集合元素:"+books); } }