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
}
}