装载其他各种各样对象的这样一种容器,数组就是一种容器,
Collection接口定义了存储一组对象的方法,其子接口Set和List分别定义了存储方式。
Set中的数据对象没有顺序切不可重复。
List中的数据对象有顺序切可以重复。
Collection接口定义的一些方法:
int size()
boolean isEmpty()
boolean contains(Object o)
Iterator<E> iterator()
boolean add(E e)
boolean remove(Object o)
boolean containsAll(Collection<?> c)
boolean addAll(Collection<? extends E> c)
boolean removeAll(Collection<?> c)
void clear()
boolean equals(Object o)
下面是一个简单的例子:
import java.util.*; public class Test { public static void main(String[] args) { Collection c = new ArrayList(); c.add("hello"); c.add("100"); c.add(10); System.out.println(c.size()); System.out.println(c); } }
容器类对象在调用remove、contains等方法时需要比较对象是否相等,这会涉及对象类型的equals方法和hashCode方法;对于自定义类型,需要重写equals方法和hashCode方法以实现自定义的对象相等规则。
所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。
Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历。
Iterator接口定义了如下的方法:
boolean hasNext()
next()
void remove()
例如:
import java.util.*; public class Test { public static void main(String[] args) { Collection c = new ArrayList(); c.add("a"); c.add("100"); c.add(10); Iterator t = c.iterator(); while(t.hasNext()){ System.out.println(t.next()); } } }
Iterator对象的remove方法是在迭代过程中删除元素的唯一的安全方法。
Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可重复。
实现Set容器的类有HashSet,TreeSet等。
如:
import java.util.*; public class HashSetTest { public static void main(String[] args) { Set s1=new HashSet(); Set s2=new HashSet(); s1.add("a");s1.add("b");s1.add("c"); s2.add("e");s2.add("c");s2.add("a"); Set sn=new HashSet(s1); sn.retainAll(s2); Set su=new HashSet(s1); su.addAll(s2); System.out.println(sn); System.out.println(su); }
如有遗漏 欢迎补充
原文:http://blog.csdn.net/cxy782255346/article/details/21329283