单例集合顶层接口Collection
单列集合顶层接口Collection
List系列集合:添加的元素是有序,可重复,有索引
有序:存和取的元素顺序一致
可重复:存储的元素可以重复
有索引:可通过索引操作元素
Set系列集合:添加的元素是无序,不重复,无索引
-
Collection是单列集合的祖宗接口,他的功能是全部单列集合都可以继承使用的
方法名 说明
public boolean add(E e) 把给定的对象添加到当前集合中
public void clear() 清空集合中的所有元素
public boolean remove(E e) 把给定的对象在当前集合中删除
public boolean contains(Object obj) 判断当前集合中是否包含给定的元素
public boolean isEmpty() 判断当前集合是否为空
public int size() 返回集合中元素的个数/集合的长度
import java.util.ArrayList;
import java.util.Collection;
public class Demo1 {
public static void main(String[] args) {
/* public boolean add (E e)把给定的对象添加到当前集合中
public void clear () 清空集合中的所有元素
public boolean remove (E e)把给定的对象在当前集合中删除
public boolean contains (Object obj)判断当前集合中是否包含给定的元素
public boolean isEmpty () 判断当前集合是否为空
public int size () 返回集合中元素的个数 / 集合的长度*/
//注意:
//Collection是一个接口,无法直接创建他的对象
//所以在学习使用他的方法的时候,只能创建他的实现类的对象
Collection<String> coll=new ArrayList<>();
//1.添加
//细节:
//1.如果我们要往List系列集合添加数据,那么方法永远返回true,因为List系列是允许元素重复的
//2.如果我们要往Set系列集合添加数据,被添加的不存在返回true,存在则无法添加返回false,因为Set系列是不允许元素重复的
coll.add("aaa");
System.out.println(coll);
//2.清空
// coll.clear();
// System.out.println(coll);
//3.删除
//注意:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除,只能通过元素的对象进行删除
//方法有一个返回值,删除成功返回true,失败返回false
// System.out.println(coll.remove("aaa"));
//4.判断元素是否存在
//底层是equals方法惊醒判断是否存在的
//所以,如果集合中储存的是自定义对象,也想通过contains方法来判断是否包含,你们在JavaBean类中,要重写equals方法
System.out.println(coll.contains("aaa"));
//创建一个集合的对象
Collection<Student> coll2=new ArrayList<>();
//创建三个学生的对象
Student s1=new Student("zhangsan",23);
Student s2=new Student("li",24);
Student s3=new Student("wangwu",25);
coll2.add(s1);
coll2.add(s2);
coll2.add(s3);
//判断集合中某一个学生对象是否包含
Student s4=new Student("zhangsan",23);
//如果姓名和年龄一样,我们就认为是同一个人
System.out.println(coll2.contains(s4));//false
//因为contains方法在底层依赖equals方法判断对象是否一直
//如果存的是自定义对象,没有重写equals方法,那么默认使用的是Object中的equals方法,比较的就是地址值
//重写equals方法后
//System.out.println(coll2.contains(s4));//true
}
}
import java.util.Objects;
public class Student {
private String name;
private int age;
public Student() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && Objects.equals(name, student.name);
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student{name = " + name + ", age = " + age + "}";
}
}