01 Collection体系
1.Collection是父接口,List和Set是子接口,用于实现父接口。接口不能被实例化,因为接口没有构造方法。
2.第三行和第四行的class就是这些接口的实现类。
02 Collection父接口
1.特点:代表一组任意类型的对象、无序、无下标、不能重复。
2.Collection父接口中的方法:
3.在API中学习集合的详细信息,具体的方法参数和返回值:
3.实例代码1
package com.collection;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;/*** Collection接口的使用* (1)添加元素* (2)删除元素* (3)遍历元素* (4)判断*/
public class Demo01 {public static void main(String[] args) {//创建集合:接口不能被实例化,只能用接口的实现类来实例化Collection c = new ArrayList();//(1)添加元素c.add("苹果");c.add("西瓜");c.add("榴莲");System.out.println("元素个数为:" + c.size());System.out.println(c);//(2)删除元素c.remove("榴莲");System.out.println("元素个数为:" + c.size());
// c.clear(); //清空元素
// System.out.println(c);//(3)遍历元素【重点】//方法1:使用增强for循环。不能使用for,因为for需要下标,collection无下标System.out.println("-------方法1 使用增强for---------");for (Object o : c) {System.out.println(o);}//方法2:使用迭代器(专门用来遍历集合的一种方式),包含三种方法:/*hasnext();有无下个元素next();获取下个元素remove();删除当前元素*/System.out.println("-------方法2 使用迭代器---------");Iterator it = c.iterator(); //需要调用集合的iterator()方法,返回值为Iterator接口类型。while (it.hasNext()) {System.out.println(it.next());}/*使用迭代器过程中(while循环里),不能用Collection的remove()方法删除元素。会出现并发错误异常。在迭代后可以使用Collection的remove()方法删除元素;也可以使用迭代器的remove()删除当前元素*/it.remove();System.out.println(c);//(4)判断System.out.println(c.contains("苹果"));System.out.println(c.isEmpty());}
}
4.实例代码2:新建一个Demo02和学生类
Student类:
package com.collection;public class Student {private String name;private int age;//添加构造方法 都是使用alt+enter快捷键public Student() {this.name = name;this.age = age;}//添加get set方法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;}//重写toString方法@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";}
}
Demo02:
package com.collection;import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;/*** Collection的使用:保存学生信息*/
public class Demo02 {public static void main(String[] args) {//新建对象 多态:Collection类型的,实际是ArrayList类型的Collection c = new ArrayList();//new三个学生对象Student s1 = new Student();s1.setName("张三");s1.setAge(20);Student s2 = new Student();s2.setName("李四");s2.setAge(18);Student s3 = new Student();s3.setName("王五");s3.setAge(22);//1添加数据c.add(s1);c.add(s2);c.add(s3);System.out.println("元素个数:" + c.size());System.out.println(c.toString()); //如果不重写toString方法,打印出是哈希值//2删除c.remove(s1);
// c.clear();System.out.println("删除之后:" + c.toString());//3遍历//3.1 增强forSystem.out.println("---------增强for---------");for (Object o : c) {System.out.println(o);}//3.2迭代器System.out.println("---------迭代器---------");Iterator it = c.iterator();while (it.hasNext()) {System.out.println(it.next());}//4判断System.out.println(c.contains(s1));System.out.println(c.isEmpty());}
}