java集合
为了保持数量不确定的数据,以及保存有映射关系的数据(关联数组),java提供了集合类。java共有四种集合体系:Set,List,Map,Queue。Java集合类从两个接口派生:Collection和Map。Collection保存集合,Map保存映射(Key-Value)值。
我们可以使用Iterator来遍历Collection中的元素。Iterator接口定义了三个方法:
boolean hasNext();
Object next();
void remove();
也可使用foreach来访问集合。两种方式都不能改变Collection中的元素。只能通过Iterator的remove方法来删除上次next返回的集合元素才可以。
Set接口
Set接口不允许包含相同的元素,它判断两个对象相等的标准是equals返回的值。HashSet是set的接口实现,它是按hash算法来储存集合中的元素,具有很好的存取和查找性能。HashSet判断两个集合相等的条件是HasCode和equals方法返回值都相等。LinkedHashSet是HashSet的之类,它在内部维持元素的次序。TreeSet是对SortedSet的唯一实现,可以确保集合元素处于排序状态。TreeSet的自然排序是根据集合元素的大小,进行升序排列。如果需要实现定制排列,需自定义Comparator接口的实现。EnumSet专门为枚举类设计的集合类。
List接口
List提供了一个额外的listIterator方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口,专门操作List。
boolean hasPrevious();
Object previous();
void add();
ArraryList和Vector是list的两个实现类。Vector提供了stack栈子类。
Queue接口
LinkedList和priorityQueue两个实现。
Map接口
Map内部定义了一个Entry内部类。它封装了key-value对。有以下方法:
Object getKey();
Object getValue();
Object setValue();
Hastable和HashMap是对Map的两个实现。LinkedHashMap是HashMap的子类。TreeMap是SortedMap的子类。
Collections工具类提供了大量的方法对集合元素进行排序,查询,修改。