欢迎访问宙启技术站
智能推送

Java中如何实现集合类的操作?

发布时间:2023-05-31 23:16:31

Java中提供了众多的集合类来满足开发者的需求,这些集合类可以管理一组对象,而不需要担心固定大小的问题。它们可以扩展或收缩,它们具有时间复杂度和空间复杂度优秀的算法,并且可以处理各种数据类型。

Java中的集合类可以被分为三种类型:

1. List:以有序的方式存储一组元素。允许元素重复,可以通过索引访问元素。常用的List结构有ArrayList,LinkedList,Vector等。

2. Set:以无序的方式存储一组元素。不允许元素重复,常用的Set有HashSet,TreeSet等。

3. Map:以Key-Value形式存储一组元素,Key和Value都可以是任何类型的对象。Key必须是 的,而Value可以重复。 常用的Map有HashMap,TreeMap,HashTable等。

下面通过一个具体的例子来学习Java中集合类的操作。

例子描述:

有一个班级,里面有5名学生,每个学生有一个学号,名字,年龄和性别信息。构建一个Student类来存放这些信息,然后使用集合类来管理这些学生对象。

Student类的实现:

public class Student {

    private String id;

    private String name;

    private int age;

    private String gender;

    public Student(String id, String name, int age, String gender) {

        this.id = id;

        this.name = name;

        this.age = age;

        this.gender = gender;

    }

    public String getId() {

        return id;

    }

    public void setId(String id) {

        this.id = id;

    }

    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 String getGender() {

        return gender;

    }

    public void setGender(String gender) {

        this.gender = gender;

    }

    @Override

    public String toString() {

        return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + ", gender='" + gender + '\'' + '}';

    }

}

创建集合对象:

我们使用List来存储这些学生对象。在ArrayList类的构造函数中,我们指定了集合的容量,当存储的元素数量超出容量时,集合会自动扩容。

List<Student> students = new ArrayList<Student>(5);

添加元素:

向集合中添加元素时,我们需要创建Student对象,然后把它加入到集合中。我们可以通过List的add()方法或addAll()方法来添加元素。

students.add(new Student("201801", "张三", 18, "男"));

students.add(new Student("201802", "李四", 19, "女"));

students.add(new Student("201803", "王五", 20, "男"));

students.add(new Student("201804", "赵六", 21, "女"));

students.add(new Student("201805", "孙七", 22, "男"));

students.addAll(Arrays.asList(new Student("201806", "周八", 23, "女"), new Student("201807", "吴九", 24, "男")));

遍历集合:

我们可以通过for循环来遍历集合,也可以使用迭代器Iterator来遍历。代码如下:

//使用for循环遍历集合

for (int i = 0; i < students.size(); i++) {

    System.out.println(students.get(i));

}

//使用Iterator遍历集合

Iterator<Student> iterator = students.iterator();

while (iterator.hasNext()) {

    System.out.println(iterator.next());

}

根据学号删除学生:

我们可以通过List的remove()方法来删除指定位置的学生对象,也可以通过removeAll()方法来删除满足特定条件的学生对象。

//根据学号删除学生对象

for (Student student : students) {

    if ("201802".equals(student.getId())) {

        students.remove(student);

        break;

    }

}

//根据学号删除学生对象

students.removeIf(student -> "201801".equals(student.getId()));

根据学号查找学生:

我们可以通过for循环遍历集合,逐个比较学号来查找学生,也可以使用Lambda表达式来查找符合条件的学生。

//根据学号查找学生对象

Student searchStudent = null;

String searchId = "201803";

for (Student student : students) {

    if (searchId.equals(student.getId())) {

        searchStudent = student;

        break;

    }

}

if (searchStudent != null) {

    System.out.println(searchStudent);

}

//根据学号查找学生对象

Optional<Student> optionalStudent = students.stream().filter(student -> searchId.equals(student.getId())).findFirst();

if (optionalStudent.isPresent()) {

    System.out.println(optionalStudent.get());

}

修改学生信息:

通过for循环遍历集合,逐个比较学号来查找学生,如果找到了符合条件的学生,我们可以直接修改学生的信息。

//修改学生信息

String updateId = "201804";

for (Student student : students) {

    if (updateId.equals(student.getId())) {

        student.setName("李四");

        student.setAge(20);

        student.setGender("男");

        break;

    }

}

通过上述代码片段的分析,可以看出Java集合类的使用非常方便,我们可以使用它们来存储和管理各种类型的对象,并且在操作上有很大的灵活性和可定制性。学会使用Java集合类可以提高我们的开发效率,提高程序的运行效率和质量。