Collection 层次结构 中的根接口Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
容器类 存储多个数据
泛型:
参数化类型
泛型只在编译阶段有效
set子接口 :无序的不可重复
list子接口:有序的可重复
方法:
add(E e)
添加元素
addAll(Collection extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
clear()
移除此 collection 中的所有元素(可选操作)。
Collection collection = new ArrayList();
collection.add('a');
collection.add("b");
collection.add("c");
System.out.println(collection);//[a, b, c]
collection.clear();
System.out.println(collection);//[]
contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
Collection c = new ArrayList();
c.add('a');
c.add('b');
c.add('c');
System.out.println(c.contains('b'));//true
containsAll(Collection> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
// An highlighted block
var foo = 'bar';
Collection c = new ArrayList();
c.add('a');
c.add('b');
c.add('c');
Collection c2 = new ArrayList();
c2.add('a');
c2.add('b');
System.out.println(c.containsAll(c2));//true
equals(Object o)
比较此 collection 与指定对象是否相等。
Collection c = new ArrayList();
c.add('a');
c.add('b');
c.add('c');
Collection c2 = new ArrayList();
c2.add('a');
c2.add('b');
System.out.println(c.equals(c2));//false
hashCode()
返回此 collection 的哈希码值。
Collection c = new ArrayList();
c.add('a');
c.add('b');
c.add('c');
Collection c2 = new ArrayList();
c2.add('a');
c2.add('b');
System.out.println(c.hashCode());//126145
System.out.println(c2.hashCode());//4066
isEmpty()
如果此 collection 不包含元素,则返回 true。
Collection c = new ArrayList();
c.add('a');
c.add('b');
c.add('c');
System.out.println(c.isEmpty());//false
iterator()
返回在此 collection 的元素上进行迭代的迭代器
iterator中的方法
boolean iterator .hasNext()
如果仍有元素可以迭代,则返回 true。
E iterator .next()
返回迭代的下一个元素。
void iterator .remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
System.out.println(c);//[a, b, c]
//迭代器
Iterator<String> it=c.iterator();
while(it.hasNext()){
System.out.print(it.next());//abc
}
it.remove();
System.out.println(c);//[a, b]
remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
removeAll(Collection> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Collection c2 = new ArrayList();//[b, c]
c2.add("b");
c2.add("c");
System.out.println(c);// [a, b, c, d]
c.remove("a");
System.out.println(c);// [b, c, d]
c.removeAll(c2);
System.out.println(c);// [d]
retainAll(Collection> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Collection c2 = new ArrayList();//[b, c]
c2.add("b");
c2.add("c");
System.out.println(c);// [a, b, c, d]
c.retainAll(c2);//true
System.out.println(c);// [b,c]
size()
返回此 collection 中的元素数。
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
System.out.println(c.size());//4
toArray()
返回包含此 collection 中所有元素的数组。
toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
System.out.println(c);//[a, b, c, d]//系统默认重写了toString方法
c.toArray();//[a, b, c, d]