数组中有没有length(),String类中有没有length(),集合中有没有length()方法? 数组中:length属性, String类中:有length()方法,获取字符串的长度 集合中没有length()方法,获取集合的元素的方法:size()
数组中:length属性, String类中:有length()方法,获取字符串的长度 集合中没有length()方法,获取集合的元素的方法:size() 代码: import java.util.ArrayList; import java.util.Collection; /** * boolean addAll(Collection c):添加一个集合中的元素 * boolean removeAll(Collection c)移除一个集合中的元素 (删除那些也包含在指定 collection 中的所有元素 (思考:删除一个集合中所有元素才算删除还是删除一个算是删除)? * boolean containsAll(Collection c):(思考:包含一个元素算是包含还是包含所有算是包含?) * boolean retainAll(Collection c):(A集合对B集合去交集,交集的元素去哪里?返回值boolean在这里表示什么意思?) 返回值类型boolean在这里表示的是A集合中的元素是否发生变化! * */ public class CollectionDemo { public static void main(String[] args) { //创建两个集合对象 Collection c1 = new ArrayList(); //给c1集合中添加元素 c1.add("abc1") ; c1.add("abc2") ; c1.add("abc3") ; c1.add("abc4") ; Collection c2 = new ArrayList(); //给c2集合中添加元素 c2.add("abc1") ; c2.add("abc2") ; // c2.add("abc3") ; // c2.add("abc4") ; c2.add("abc5") ; c2.add("abc6") ; c2.add("abc7") ; c2.add("abc8") ; // boolean addAll(Collection c):添加一个集合中的元素 System.out.println("addAll:"+c1.addAll(c2)); // boolean removeAll(Collection c)移除一个集合中的元素 (删除那些也包含在指定 collection 中的所有元素(思考:删除一个集合中所有元素才算删除还是删除一个算是删除)? //包含一个元素算是删除! // System.out.println("removeAll:"+c1.removeAll(c2)); //boolean containsAll(Collection c):(思考:包含一个元素算是包含还是包含所有算是包含?):包含一个集合中的所有元素才算包含! // System.out.println("containsAll:"+c1.containsAll(c2)); //boolean retainAll(Collection c):(A集合对B集合去交集,交集的元素去哪里?返回值boolean在这里表示什么意思?) /**注意: * 如果一个A集合对B集合取交集,那么交集的元素要存储A里面,返回值类型boolean在这里 * 表示的是A集合中的元素是否发生变化! * */ // System.out.println("retainAll:"+c1.retainAll(c2)); System.out.println("c1:"+c1); System.out.println("c2:"+c2); } 3. 集合中的一个转换功能: Object[] toArray():将集合转换成数组,利用这个功能就可以完成集合对元素的遍历 代码: import java.util.ArrayList; import java.util.Collection; public class CollectionDemo2 { public static void main(String[] args) { //创建集合对象 Collection c=new ArrayList();//抽象多态,Collection是抽象类不能直接实例化 //给集合中添加元素 c.add("Good"); c.add("Good"); c.add("Study"); //将集合转换成数组 Object[] objs=c.toArray(); //遍历数组 for(int x=0;x<objs.length;x++){ //需求:我要得到字符串的同时,还要得到字符串的长度 //length(),字符串中特有的功能:长度功能 //强制类型转换 String s=(String) objs[x]; System.out.println(s+","+s.length()); } } } 4. Iterator iterator():迭代器 集合中的专用迭代遍历方式 Iterator接口: Object next()返回迭代的下一个元素,获取元素 单独使用next()会报异常:java.util.NoSuchElementException:没有这样元素的异常!,现在元素已经获取到最后了 boolean hasNext():如果有下一个可以迭代的元素,请进行获取,判断功能 将上面把集合转化成数组进行遍历的代码用迭代器改进 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class IteratorDemo { public static void main(String[] args) { //创建集合对象 Collection c=new ArrayList(); //给集合添加元素 c.add("Good"); c.add("Good"); c.add("Study"); //使用迭代器进行数组遍历 Iterator it=c.iterator(); //方式一: //获取下一个元素 // Object obj=it.next(); // System.out.println(obj); // System.out.println(it.next()); // System.out.println(it.next()); // System.out.println(it.next());//出现异常 //java.util.NoSuchElementException:没有这样元素的异常!,现在元素已经获取到最后了 //方式二: //优化改进,增加判断功能, boolean hasNext():如果有下一个可以迭代的元素,猜进行获取,判断功能 if(it.hasNext()){ System.out.println(it.next()); } if(it.hasNext()){ System.out.println(it.next()); } if(it.hasNext()){ System.out.println(it.next()); } if(it.hasNext()){ System.out.println(it.next()); } System.out.println("................."); // 方式3 // 方式2 代码重复率高,使用while 循环 Iterator it2=c.iterator(); while(it2.hasNext()){ String s=(String) it2.next(); System.out.println(s+","+s.length()); } } } 5.练习 获取5个学生的信息并存储到数组中 public class Student { private String name; private int age; public Student() { super(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student(String name, int age) { super(); this.name = name; this.age = age; } } //测试类 import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class IteratorTest { public static void main(String[] args) { //创建集合对象 Collection c=new ArrayList(); //创建Student对象 Student s1=new Student("小红",23); Student s2=new Student("小方",22); Student s3=new Student("小名",21); Student s4=new Student("小军",27); Student s5=new Student("小例",24); //给集合添加元素 c.add(s1); c.add(s2); c.add(s3); c.add(s4); c.add(s5); //使用迭代器遍历 Iterator it=c.iterator(); while(it.hasNext()){ Student s=(Student) it.next(); System.out.println(s.getName()+"---"+s.getAge()); } } }