Java 集合操作方法
集合的体系结构
List系列集合:添加的元素是有序、可重复、有索引
Set系列集合:添加的元素是无序、不重复、无索引
操作集合的方法
package com.mycollection;
import java.util.ArrayList;
import java.util.Collection;
public class A01_CollectionDemo01 {
public static void main (String[] args) {
Collection<String> coll = new ArrayList<> ();
coll.add ("aaa");
coll.add ("bbb");
coll.add ("ccc");
coll.remove ("aaa");
coll.contains ("aaa");
coll.contains ("bbb");
System.out.println (coll.isEmpty ());
coll.size ();
coll.clear ();
coll.size ();
}
}
注意点:
collection是一个接口,我们不能直接创建他的对象。
所以,现在我们学习他的方法时,只能创建他实现类的对象。实现类: ArrayList
目的:为了学习Collection接口里面的方法
1.添加元素
细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true,
因为List系列的是允许元素重复的。
细节2:如果我们要往Set系列集合中添加数搪如果当前要添加元素不存在,方法返回true,表示添加成功。
如果当前要添加的元素已经存在,方法返回false,表示添加失败。
因为Set系列的集合不允许重复。
3.删除
细节1:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。
只能通过元素的对象进行删除。
细节2:方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false
如果要删除的元素不存在,就会删除失败。
4.判断元素是否包含
细节:底层是依赖equals方法进行判断是否存在的。
所以,如果集合中存储的是自定义对象,也想通过contains方j法来判断是否包含
那么在javabean类中,一定要重写equals方法。
因为contains方法在底层依赖equals方法判断是否一致
如果存在自定义的对象,没有重写equals 方法,那么默认使用Object类中的equals方法,而Object类中的equals方法,依赖地址值进行判断
需求:如果同名同年龄,我们认为是同一个学生
所以需要在自定义的Javabean类中,重写equals方法
package com.mycollection;
import java.util.ArrayList;
import java.util.Collection;
public class A02_CollectionDemo02 {
public static void main (String[] args) {
//1. 创建集合对象
Collection<Student> coll = new ArrayList<> ();
//2. 创建三个学生对象
Student s1 = new Student ("zhangsan",23);
Student s2 = new Student ("lisi",23);
Student s3 = new Student ("wangwu",23);
//3. 把学生对象添加到集合当中
coll.add (s1);
coll.add (s2);
coll.add (s3);
//4. 判断某一个学生对象是否包含
Student s4 = new Student ("zhangsan",23);
/*如果同名同年龄,我们认为是同一个学生
因为contains方法在底层依赖equals方法判断是否一致
如果存在自定义的对象,没有重写equals 方法,那么默认使用Object类中的equals方法,而Object类中的equals方法,依赖地址值进行判断
需求:如果同名同年龄,我们认为是同一个学生
所以需要在自定义的Javabean类中,重写equals方法
*/
System.out.println (coll.contains (s4));
}
}
package com.mycollection;
import java.util.Objects;
public class Student {
private String name;
private int age;
public Student (String name, int age) {
this.name = name;
this.age = age;
}
public Student () {
}
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;
}
@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);
}
@Override
public String toString () {
return "Student{" + "name='" + name + '\'' + ", age=" + age + '}';
}
}
还没有评论,来说两句吧...