JavaSE教程_进阶
boolean:add(E e) 向集合中添加元素e
boolean:addAll(Collection c) 把集合c中所有元素都添加到当前集合中
void:clear() 清空当前集合中所有的元素
boolean:contains(Object o) 在当前集合中判断是否包含元素o
boolean:containsAll(Collection c) 判断当前集合是否包含集合c中的所有元素
boolean:equals(Object o)
int:hashCode()
boolean:isEmpty() 判断集合是否为空
Iterator:iterator() 返回当前集合的迭代器
boolean:remove(Object o) 从当前集合中删除第一个与o匹配的元素
boolean:removeAll(Collection c) 在当前集合中删除在c集合中出现的所有元素
int:size() 返回集合中元素的个数
Object[]:toArray() 把集合转换为数组
T[]:toArray(T[] a)
package com.wkcto.chapter05.collection;
import java.util.ArrayList;
import java.util.Collection;
/**
* 演示Collection集合的基本操作
* @author 蛙课网
*
*/
public class Test01 {
public static void main(String[] args) {
//1)创建Collection集合, Collection是一个接口,需要赋值实现类对象
Collection collection = new ArrayList<>();
//2) 向集合中添加元素, 默认添加Object类型数据
collection.add("aa");
collection.add("bb");
collection.add( 123 ); //如果添加基本类型,系统会自动装箱, 把包装类对象添加到集合中
collection.add( true );
//3) 直接打印, collection引用 的是ArrayList对象, 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 蛙课网
*
*/
public class Test02 {
public static void main(String[] args) {
//在实际应用中,一个集合中一般只存储同一类型的数据, 可以在定义集合时,通过泛型约束集合中元素的类型
//Collection后面的尖括弧指定集合元素的类型, 这就是泛型, 泛型就是把数据类型当作参数
Collection<String> collection = new ArrayList<>();
//在添加元素时, collection集合就只能添加String类型的数据
collection.add("gg");
collection.add("jj");
collection.add("dd");
collection.add("mm");
//如果添加的数据不是String类型,编译报错, 这就是泛型的好处,可以在编译时进行数据类型的检查
// collection.add(123);
collection.add( "mm");
collection.add( "jj");
System.out.println( collection ); //[gg, jj, dd, mm, mm, jj]
//删除jj, remove()只删除第一个匹配的元素
collection.remove("jj");
System.out.println( collection ); //[gg, dd, mm, mm, jj]
//创建第二个集合
Collection<String> collection22 = new ArrayList<>();
collection22.addAll(collection); //把collection中 的所有元素添加到当前集合中
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集合中出现的元素
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 蛙课网
*
*/
public class Test03 {
public static void main(String[] args) {
//1)创建一个存储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集合中的每个 元素赋值给局部变量str
System.out.println( str );
}
//5)把所有的dd删除
// collection.remove("dd") ; //删除第一个匹配的元素
// collection.removeAll(c); //删除出现在c集合中的所有元素, 依次判断当前集合中每个 元素是否在c集合中,如果存在就删除
//foreach循环仅用于遍历
/* for (String string : collection) {
if ("dd".equals(string)) {
collection.remove("dd");
}
}*/
//6) 迭代器遍历
//6.1 获得迭代器对象
Iterator<String> iterator = collection.iterator();
/*
* iterator.hasNext()用于判断是否还有下个元素没访问
* iterator.next()返回下个元素, 游标下移
* 刚刚获得迭代器时, 迭代器的游标指向第一个元素的前面
*/
//6.2迭代遍历
while( iterator.hasNext() ){
String str = iterator.next();
System.out.print( str + "\t");
}
System.out.println();
//循环完成后, iterator游标已经指向最后一个元素的后面, 如果还想要使用iterator迭代器,需要重写获得
iterator = collection.iterator(); //重新获得迭代器后,游标指向 第一个元素的前面
//6.3 迭代删除
while (iterator.hasNext()) {
String string = iterator.next();
if ("dd".equals(string)) {
iterator.remove(); //迭代删除
}
}
System.out.println( collection );
//重新获得迭代器, 游标指向 第一个元素的前面
iterator = collection.iterator();
//获得了迭代器后, 如果再通过集合的add()/remove()/clear()等方法修改了集合的结构, 再迭代时,可能会产生异常
//获得了迭代器后, 不能再通过集合的add()/remove()/clear()等方法修改集合的结构
// 可以在通过集合的add()/remove()/clear()等方法修改集合的结构后, 重新获得迭代器对象
// 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");
}
}
}
}