Collection 接口
Collection 接口中声明的常用方法
an add(E e) | 把元素放到集合中 |
---|---|
boolean addAll(Collection<? extends E> c) | 把另一个集合合并到当前集合中 |
boolean remove(Object o) | 移除集合中的元素 |
– | – |
boolean contains(Object o) | 判断是不是含有某个元素 |
boolean containsAll(Collection<?> c) | 判断是不是完全含有目标集合中的元素 |
– | – |
boolean removeAll(Collection<?> c) | 移除和目标集合中的元素相同的所有元素 |
boolean retainAll(Collection<?> c) | 取交集 |
– | – |
clear() //清空 | size() //求集合长度 |
toArray() //把集合转成数组 | boolean isEmpty() //判空 |
– | – |
Iterator iterator() | 使用迭代器对集合进行迭代 |
Collection 的添加类操作
static void test() {
Collection c=new ArrayList();
c.add("一");
c.add("二");
c.add("三");
c.add("四");
c.add(9);
c.add(true);
c.add(new Cat());
System.out.println(c); //[一, 二, 三, 四, 9, true, com.Cat@52e922]
System.out.println(c.size()); //7
Collection c2=new ArrayList();
c2.add("西瓜");
c2.add("冬瓜");
c.addAll(c2);
System.out.println(c); //[一, 二, 三, 四, 9, true, com.Cat@52e922, 西瓜, 冬瓜]
}
Collection 的删除类操作
static void test2() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
c.add("冬雪");
// 注意,remove 是移除首次出现的(即如果有多个,只移除一个)
c.remove("秋月"); //[春花, 凉风, 冬雪,冬雪]
Collection c2=new ArrayList();
c2.add("凉风");
c2.add("冬雪");
c2.add("酱油");
c.removeAll(c2);
System.out.println(c); //[春花]
c.clear();
System.out.println(c); //[]
}
Collection 的判断类操作
static void test3() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
System.out.println(c.contains("铅球")); //false
System.out.println(c.contains("凉风")); //true
Collection c2=new ArrayList();
c2.add("春花");
c2.add("秋月");
c2.add("月饼");
System.out.println(c.containsAll(c2)); //false
System.out.println(c2.isEmpty()); //false
c2.clear();
System.out.println(c2.isEmpty()); //true
System.out.println(c2.size()); //0
}
Collection 的查询类操作
static void test4() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
/*Collection c2=new ArrayList();
c.add("w春花");
c.add("w秋月");
c.add("w铅球");
c.retainAll(c2); //取完的交集放在c 中
System.out.println(c); //[] 因为没有交集所以得到 空
*/
Collection c3=new ArrayList();
c3.add("春花");
c3.add("秋月");
c3.add("铅球");
c.retainAll(c3);
System.out.println(c); //[春花, 秋月]
}
Iterator 接口
static void test5() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
Iterator it= c.iterator();
while(it.hasNext()) {
System.out.println("元素:"+it.next());
}
}
//例 演示了 next() 使用不当造成的问题
static void test6() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
Iterator it= c.iterator();
while(it.hasNext()) {
String item=(String)it.next();
System.out.println(it.next());
}
//秋月,冬月
}
//例 演示了迭代时越界的问题
static void test6() {
Collection c=new ArrayList();
c.add("春花");
c.add("秋月");
c.add("凉风");
c.add("冬雪");
Iterator it= c.iterator();
while(it.hasNext()) {
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next()); //NoSuchElementException
}
}