首先是Collection集合部分基本操作
package collection集合的基本操作;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class a {
public static void main(String[] args) {
//1)创建Collection集合
//Collection是一个接口,需要赋值实现类对象
Collection co=new ArrayList<>();
//2)向集合中添加元素,集合中存储引用类型数据,只要是Object类型对象就可以添加到集合中
co.add("abc");
co.add(456);
co.add(true);
System.out.println(co);
//3)在实际应用中,一个集合一般只存储一个类型的数据,可以通过泛型来约束集合中元素的类型
//泛型就是把数据类型作为参数传递
Collection<String> co2 =new ArrayList<>(); //通过泛型约束集合中只能存储String类型数据
//向集合中添加数据
co2.add("jj");
co2.add("jj");
co2.add("dd");
co2.add("mm");
co2.add("dd");
//通过泛型约束co2集合只能存储String,如果添加其它类型的数据。就会产生编译错误
//泛型的好处就是在编译时。可以进行数据类型的检查
//co2.add(123); 编译错误
//4)直接打印
System.out.println(co2);
/*
* 当前co2引用指向的是ArrayLit集合的对象
* 在调用println()方法时,把co2变量的值,即ArrayList对象的引用作为println()方法的实参
* 在println()方法打印对象时,调用的ArrayList对象的toString()方法
*/
//5)判断
System.out.println(co2.isEmpty());
System.out.println(co2.size());
System.out.println(co2.contains("dd"));
//6)删除集合中的元素jj
co2.remove("jj"); //只删除第一个匹配的元素
System.out.println(co2);
//7)转换为数组
String []myarray = new String[co2.size()];
co2.toArray(myarray);
System.out.println(Arrays.toString(myarray));
}
}
再来就是Collection集合中的迭代器应用
package collection集合的迭代器;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class a {
public static void main(String[] args) {
//创建一个存储String字符串的Collection集合
Collection<String> co=new ArrayList<>();
//添加数据
co.add("jj");
co.add("dd");
co.add("mm");
co.add("jj");
co.add("mm");
co.add("dd");
System.out.println(co);
//使用迭代遍历集合的每个元素
Iterator<String> iterator = co.iterator(); //获得了迭代器
/*获得了迭代器后,迭代有一个游标,指向集合第一个元素的前面
* hasNext()判断是否还有下一个元素
* next()表示返回下一个元素,游标下移
*/
while(iterator.hasNext()){ //通过while循环迭代遍历集合中的每一个元素
String str=iterator.next();
System.out.println(str+"\t");
}
System.out.println();
//collection.remove()只能删除第一个匹配的元素
co.remove("jj");
System.out.println(co); //这样子只能删除集合中的第一个jj元素
//如果想删除集合中的所有dd元素 ,遍历集合中的元素,如果该元素是dd就删除
//前面iterator迭代器的游标,经过while循环后,已经指向最后一个元素的后面,所以需要重新获得迭代器对象
iterator = co.iterator(); //重新获得迭代器后,游标又指向一个元素前面
while (iterator.hasNext()) {
String string = (String) iterator.next();
if("dd".equals(string)){
iterator.remove(); //通过迭代器中的方法删除
//co.remove("dd"); 不能使用这种方法,不然会造成运行异常
}
System.out.println(co);
/*
* 注意,当已经获得了Iterator迭代器后,如果再通过Collection集合的add()/remove()/clear()等方法修改了集合的结构
* 在使用迭代器的next()方法反悔下一个元素时,可能会出现运行异常
*/
}
}
}