什么是容器
顾名思义,容器是装东西的一种器具。在java中容器是用来装载一个一个对象的。Collection接口作为父类,有容器最基本的方法,添加对象(Add),移除对象(remove),容器的容量(SIze)等方法。
实现接口的不同
在装东西的时候,装的方式不同就产生了不同的接口和类。
Set接口中的数据对象没有顺序且不可重复
List接口中的数据对象有顺序且可以重复
Set、List容器是一个一个装对象Map则是一对一对的装。所以Map中有键(key)值(value)对。
根据装东西的方式不同List接口下有LinkedList和ArrayList两个类,ArrayList装东西的时候是顺序排列的,二LinkedList链表是靠一个一个指针相连物理地址并不相同。
代码实现
import java.util.*;
public class ContainerBasic{
public static void main(String[] args){
Collection c=new ArrayList();//接口是不可以实例化的,但是ArrayList实现了Collection ,ArrayList是一个类可以实例化
c.add("hello");
c.add(new Integer(100));
System.out.println(c.size());
System.out.println(c);
}
}
我们都知道接口是不能实例化的,这里的Collection c=new ArrayList();可以看成子类继承父类,也可以看做父类引用实现了子类对象。
Iterator 接口(迭代器)
所有实现了Collection接口的容器类都有一个Iterator方法。Iterator用于循环遍历容器中的对象。
代码实现
import java.util.*;
public class TestIterator{
public static void main(String[] args){
Collection c=new HashSet();
c.add(new Name("f1","l1"));
c.add(new Name("f2","l2"));
c.add(new Name("f3","l3"));
Iterator i=c.iterator();
while(i.hasNext()){
Name n=(Name)i.next(); //i..next要写要不然就成了死循环
System.out.println(n.getFirstName()+" ");
}
}
}
Iterator i=c.iterator();这是由于不同的collection有不有同的遍历操作,为了统一接口。添加每个实现 collection接口的类都要实现Iterator。