import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class TestList { public List studentList; public static void main(String[] args) { Classes c = new Classes(); //向集合中逐个添加元素,两种方法add(对象),add(索引,对象) List list = new ArrayList(); Stu s1 = new Stu("1","张三"); list.add(s1);//向List集合中添加元素 Stu s2 = new Stu("2", "李四"); list.add(s2); Stu s3 = new Stu("3", "王五"); list.add(0, s3);//向List集合中指定位置添加元素 Stu s4 = new Stu("4", "赵六"); System.out.println("list结合中学生的个数:" + list.size()); list.add(list.size(),s4);//向List集合后面添加元素 //list.add(5,s4);//会报错:java.lang.IndexOutOfBoundsException: Index: 5, Size: 4 //向集合中一次添加多个元素,两种方法addAll(对象集合),addAll(索引,对象集合) Stu[] stuArray = {new Stu("5", "小名"),new Stu("6", "小红")}; list.addAll(Arrays.asList(stuArray));//向集合后面添加多个对象 Stu[] stuArray2 = {new Stu("7", "tom"),new Stu("8", "jack")}; list.addAll(0, Arrays.asList(stuArray2)); System.out.println("*******获取list中对象的方法一*******"); //增强for循环获取list中对象 for (Object o : list) { Stu s = (Stu)o; //在没有存入没有泛型的集合中的对象,到了集合中就被转换为了Object对象,所以在获取本集合中的某个对象时需要强制类型转换 System.out.println(s.getId()+ ":" + s.getName()); } //list.clear();//清除list中的所有对象 System.out.println("*******修改list中对象的方法*******");//使用set方法 list.set(0, new Stu("0", "Alex")); //第0位置上的对象本为tom,通过set方法被修改为了Alex System.out.println("*******获取list中对象的方法二*******"); //普通for循环获取list中对象 for (int i = 0; i < list.size(); i++) { Stu s = (Stu) list.get(i);//获取list中某个位置上的对象 System.out.println(s.getId()+ ":" + s.getName()); } System.out.println("***********删除list中对象**************"); Stu s = (Stu) list.get(0); list.remove(s);//通过对象删除 list.remove(0);//通过索引删除 list.removeAll(Arrays.asList(stuArray));//删除多个元素 System.out.println("*******获取list中对象的方法三*******"); //使用迭代器获取list中对象 Iterator it = list.iterator(); while(it.hasNext()) { Stu stu = (Stu)it.next(); System.out.println(stu.getId()+ ":" + stu.getName()); } System.out.println("*********使用泛型************"); List<Stu> stuList = new ArrayList<Stu>(); stuList.add(s1); stuList.add(s2); for (Stu stu : stuList) {//使用泛型就可以去掉类型转换过程了 System.out.println(stu.getId()+ ":" + stu.getName()); } for (int i = 0; i < stuList.size(); i++) { Stu stu = stuList.get(i);//获取stuList中某个位置上的对象 System.out.println(stu.getId()+ ":" + stu.getName()); } } }
List集合是有序的,可以重复的,所以可以通过下标的形式获取某个元素,可存储多个null值,在获取时要注意判断;
import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class TestSet { public Set<Stu> stuSet; public static void main(String[] args) { Set<Stu> stuSet = new HashSet<Stu>(); Stu s1 = new Stu("1","张三"); stuSet.add(s1);//向List集合中添加元素 Stu s2 = new Stu("2", "李四"); Stu s3 = new Stu("3", "王五"); Stu[] stuArray = {s2,s3}; //stuSet.add(0, s3);//会报错的,set是无序的,故没有Set提供的方法中均没有下标的 stuSet.addAll(Arrays.asList(stuArray)); /*stuSet.add(null);set中允许存储null值,但是只能有一个 stuSet.add(null);*/ stuSet.add(s1); System.out.println(stuSet.size());//结果为3,set是不可重复的,s1已添加进入了 /*Iterator<Stu> it = stuSet.iterator(); while(it.hasNext()) { Stu stu = it.next(); //输出多次的结果不相同,set无序,所以每次结果可能会不一样 System.out.println(stu.getId()+ ":" + stu.getName()); }*/ } }