java - 删除pojo数组列表项

标签 java arraylist

当 pojo 类 arraylist 项等于 arraylist 字符串时,我需要删除它。

下面我发布了代码:

示例.java:

import java.util.ArrayList;

public class Sample {

    public static void main(String args[]) {

        ArrayList<String> arrStr;

        ArrayList<Student> arrStudent;

        arrStr = new ArrayList<String>();

        arrStudent = new ArrayList<Student>();


        arrStr.add("100");
        arrStr.add("150");
        arrStr.add("200");
        arrStr.add("250");
        arrStr.add("300");

        arrStudent.add(new Student("Max", "Get Data ", "140"));
        arrStudent.add(new Student("Max", "Get Data ", "150"));
        arrStudent.add(new Student("Max", "Get Data ", "160"));
        arrStudent.add(new Student("Max", "Get Data ", "200"));
        arrStudent.add(new Student("Max", "Get Data ", "230"));


        for (String item : arrStr) {

            System.out.println("item :" +item);

            System.out.println("ArrListCheck" +arrStudent.toString());


            if (arrStudent.contains(item)) {

                arrStudent.remove(item);

            } else {

                System.out.println("Else Called");


            }
        }

    }

}

Student.java:

public class Student {

    public String name;

    public String description;

    public String id;

    public Student(String name, String description, String id) {
        this.name = name;
        this.description = description;
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }

    public String getId() {
        return id;
    }

    @Override
    public String toString() {

        String str = name +""+description+""+id;

        return str;
    }

}

输出:

item :100
ArrListCheck[MaxGet Data 140, MaxGet Data 150, MaxGet Data 160, MaxGet Data 200, MaxGet Data 230]
Else Called

item :150
ArrListCheck[MaxGet Data 140, MaxGet Data 150, MaxGet Data 160, MaxGet Data 200, MaxGet Data 230]
Else Called

item :200
ArrListCheck[MaxGet Data 140, MaxGet Data 150, MaxGet Data 160, MaxGet Data 200, MaxGet Data 230]
Else Called

item :250
ArrListCheck[MaxGet Data 140, MaxGet Data 150, MaxGet Data 160, MaxGet Data 200, MaxGet Data 230]
Else Called

item :300
ArrListCheck[MaxGet Data 140, MaxGet Data 150, MaxGet Data 160, MaxGet Data 200, MaxGet Data 230]
Else Called

正如您在上面的代码中看到的,它总是调用 else。我不知道如何将 arraylist 字符串中的两个 id 与 arraylist pojo 类相等,然后我必须根据 id 删除 arraylist pojo 类项目。任何人可以帮我解决这个问题。

最佳答案

您可以迭代 ArrayList<Student>而不是迭代 ArrayList<String> :

    for (int i = 0; i < arrStudent.size(); i++) {
        Student student = arrStudent.get(i);
        if (arrStr.contains(student.getID())) {
            arrStudent.remove(i);
            i--;
        } else {
            System.out.println("Else Called");
        }
    }

关于java - 删除pojo数组列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686511/

相关文章:

java - spring-security-oauth2中OAuth2的refresh_token逻辑实现

java - 添加到Android Studio中的列表,性能问题

java - 我 block 填充,仍然得到 "data not block size aligned"

java - 在 Java 中,如何将字节数组转换为十六进制数字字符串,同时保持前导零?

java 动态服务器 - 我可以有多个 web.xml 文件吗?

Java:如何计算ArrayList中不重复(只出现一次)的字符串?

java - 为什么 ArrayList 导入不起作用? ( java )

java - 打包的 C 结构和函数可以移植到 java 吗?

java - Java中如何访问ArrayList中存储的值?

java - 查找 ArrayList 中与常量相比差异最小的元素