这里仅概述Java中的容器。Java也是支持范型的,比如“ArrayList a = new ArrayList”。不带范型参数的容器默认为Object对象的集合。
容器包括两大类:Collection和Map,它们包括:
Collection:List(ArrayList、LinkedList)、Set(HashSet、TreeSet、LinkedHashSet)、Queue(PriorityQueue)。
Map:HashMap、TreeMap、LinkedHashMap。
Collection提供一个iterator()方法来返回一个迭代器(Iterator),一个Iterator要包含以下方法:hasNext()、next()和remove()(可选)。
为了支持Foreach的语法,一个类必须实现Iterable接口。这个接口有一个方法iterator()来得到一个迭代器。Collection实现了这个接口。下面的代码定义了支持Foreach的类:
- class MyCollection implements Iterable<Integer> {
- public Iterator<Integer> iterator()
- {
- return new Iterator<Integer>() {
- int i = 0;
- public boolean hasNext() { return i < 10; }
- public Integer next() { return i++; }
- public void remove() { throw new UnsupportedOperationException(); }
- };
- }
- public static void main(String[] args)
- {
- MyCollection mc = new MyCollection();
- for (int i: mc)
- System.out.print(i);
- }
- }
阅读(666) | 评论(0) | 转发(0) |