boolean:add(E e) 向集合中添加元素e
boolean:addAll(Collection c) 把集合c中所有元素都添加到當(dāng)前集合中
void:clear() 清空當(dāng)前集合中所有的元素
boolean:contains(Object o) 在當(dāng)前集合中判斷是否包含元素o
boolean:containsAll(Collection c) 判斷當(dāng)前集合是否包含集合c中的所有元素
boolean:equals(Object o)
int:hashCode()
boolean:isEmpty() 判斷集合是否為空
Iterator:iterator() 返回當(dāng)前集合的迭代器
boolean:remove(Object o) 從當(dāng)前集合中刪除第一個(gè)與o匹配的元素
boolean:removeAll(Collection c) 在當(dāng)前集合中刪除在c集合中出現(xiàn)的所有元素
int:size() 返回集合中元素的個(gè)數(shù)
Object[]:toArray() 把集合轉(zhuǎn)換為數(shù)組
T[]:toArray(T[] a)
package com.wkcto.chapter05.collection;
import java.util.ArrayList;
import java.util.Collection;
/**
* 演示Collection集合的基本操作
* @author 蛙課網(wǎng)
*
*/
public class Test01 {
public static void main(String[] args) {
//1)創(chuàng)建Collection集合, Collection是一個(gè)接口,需要賦值實(shí)現(xiàn)類對(duì)象
Collection collection = new ArrayList<>();
//2) 向集合中添加元素, 默認(rèn)添加Object類型數(shù)據(jù)
collection.add("aa");
collection.add("bb");
collection.add( 123 ); //如果添加基本類型,系統(tǒng)會(huì)自動(dòng)裝箱, 把包裝類對(duì)象添加到集合中
collection.add( true );
//3) 直接打印, collection引用 的是ArrayList對(duì)象, ArrayList的爺爺類AbstractCollection重寫了toString()
System.out.println( collection ); //[aa, bb, 123, true]
//4)判斷
System.out.println( collection.isEmpty() ); //false
System.out.println( collection.size()); //4
System.out.println( collection.contains("bb")); //true
//5)刪除
collection.remove("bb");
System.out.println( collection );
}
}
package com.wkcto.chapter05.collection;
import java.util.ArrayList;
import java.util.Collection;
/**
* 集合泛型與集合之間的相互操作
* @author 蛙課網(wǎng)
*
*/
public class Test02 {
public static void main(String[] args) {
//在實(shí)際應(yīng)用中,一個(gè)集合中一般只存儲(chǔ)同一類型的數(shù)據(jù), 可以在定義集合時(shí),通過(guò)泛型約束集合中元素的類型
//Collection后面的尖括弧指定集合元素的類型, 這就是泛型, 泛型就是把數(shù)據(jù)類型當(dāng)作參數(shù)
Collection<String> collection = new ArrayList<>();
//在添加元素時(shí), collection集合就只能添加String類型的數(shù)據(jù)
collection.add("gg");
collection.add("jj");
collection.add("dd");
collection.add("mm");
//如果添加的數(shù)據(jù)不是String類型,編譯報(bào)錯(cuò), 這就是泛型的好處,可以在編譯時(shí)進(jìn)行數(shù)據(jù)類型的檢查
// collection.add(123);
collection.add( "mm");
collection.add( "jj");
System.out.println( collection ); //[gg, jj, dd, mm, mm, jj]
//刪除jj, remove()只刪除第一個(gè)匹配的元素
collection.remove("jj");
System.out.println( collection ); //[gg, dd, mm, mm, jj]
//創(chuàng)建第二個(gè)集合
Collection<String> collection22 = new ArrayList<>();
collection22.addAll(collection); //把collection中 的所有元素添加到當(dāng)前集合中
System.out.println( collection22 );
collection22.remove("mm");
System.out.println( collection22 ); //[gg, dd, mm, jj]
//判斷collection集合中是否包含collection22集合中所有的元素
System.out.println( collection.containsAll(collection22)); //true
//判斷collection22集合中是否包含collection集合中所有的元素
System.out.println( collection22.containsAll(collection)); //true
//在colllection中刪除在collection22集合中出現(xiàn)的元素
collection.removeAll(collection22);
System.out.println( collection ); //[]
}
}
package com.wkcto.chapter05.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* 集合的迭代器
* @author 蛙課網(wǎng)
*
*/
public class Test03 {
public static void main(String[] args) {
//1)創(chuàng)建一個(gè)存儲(chǔ)String字符串的Collection集合
Collection<String> collection = new ArrayList<>();
//2) 添加元素
collection.add("gg");
collection.add("jj");
collection.add("dd");
collection.add("jj");
collection.add("dd");
collection.add("jj");
//3)直接打印
System.out.println( collection ); //[gg, jj, dd, jj, dd, jj]
//4) 遍歷集合中的元素
for (String str : collection) {
//把collection集合中的每個(gè) 元素賦值給局部變量str
System.out.println( str );
}
//5)把所有的dd刪除
// collection.remove("dd") ; //刪除第一個(gè)匹配的元素
// collection.removeAll(c); //刪除出現(xiàn)在c集合中的所有元素, 依次判斷當(dāng)前集合中每個(gè) 元素是否在c集合中,如果存在就刪除
//foreach循環(huán)僅用于遍歷
/* for (String string : collection) {
if ("dd".equals(string)) {
collection.remove("dd");
}
}*/
//6) 迭代器遍歷
//6.1 獲得迭代器對(duì)象
Iterator<String> iterator = collection.iterator();
/*
* iterator.hasNext()用于判斷是否還有下個(gè)元素沒訪問(wèn)
* iterator.next()返回下個(gè)元素, 游標(biāo)下移
* 剛剛獲得迭代器時(shí), 迭代器的游標(biāo)指向第一個(gè)元素的前面
*/
//6.2迭代遍歷
while( iterator.hasNext() ){
String str = iterator.next();
System.out.print( str + "\t");
}
System.out.println();
//循環(huán)完成后, iterator游標(biāo)已經(jīng)指向最后一個(gè)元素的后面, 如果還想要使用iterator迭代器,需要重寫獲得
iterator = collection.iterator(); //重新獲得迭代器后,游標(biāo)指向 第一個(gè)元素的前面
//6.3 迭代刪除
while (iterator.hasNext()) {
String string = iterator.next();
if ("dd".equals(string)) {
iterator.remove(); //迭代刪除
}
}
System.out.println( collection );
//重新獲得迭代器, 游標(biāo)指向 第一個(gè)元素的前面
iterator = collection.iterator();
//獲得了迭代器后, 如果再通過(guò)集合的add()/remove()/clear()等方法修改了集合的結(jié)構(gòu), 再迭代時(shí),可能會(huì)產(chǎn)生異常
//獲得了迭代器后, 不能再通過(guò)集合的add()/remove()/clear()等方法修改集合的結(jié)構(gòu)
// 可以在通過(guò)集合的add()/remove()/clear()等方法修改集合的結(jié)構(gòu)后, 重新獲得迭代器對(duì)象
// collection.add("dd");
System.out.println( collection );
//再迭代遍歷
while (iterator.hasNext()) {
String string = (String) iterator.next();
// System.out.print( string + "\t");
if( "jj".equals(string) ){
// collection.remove("jj");
}
}
}
}