java - 如何忽略列表中的重复项并改为添加一项?

标签 java android algorithm

如果两个或多个用户具有相同的高度和体重,则忽略这些项目并添加一个项目并设置名称多个。我尝试下面的代码,但我无法删除相同的项目。

信息类

public class Info {

    public String name;
    public int height;
    public int weight;

    public Info(String name,int height, int weight) {
        this.height = height;
        this.weight = weight;
        this.name=name;
    }
}

主类

    List<Info> infoList = new ArrayList<>();
    List<Info> infoListFiltered = new ArrayList<>();

    infoList.add(new Info("a",1, 2));
    infoList.add(new Info("b",2, 2));
    infoList.add(new Info("c",1, 3));
    infoList.add(new Info("d",1, 2));
    infoList.add(new Info("e",1, 2));



    for (int i = 0; i < infoList.size(); i++) {
        for (int j = i+1; j < infoList.size(); j++) {
            if(infoList.get(i).height==infoList.get(j).height&&infoList.get(i).weight==infoList.get(j).weight) {
                infoList.get(i).name="multi";
                infoListFiltered.add(infoList.get(i));
            }else {
                infoListFiltered.add(infoList.get(i));
            }
        }
    }

有什么建议吗?

最佳答案

尝试这种方式,看看它是否适合你。

public void processData()  {
    List<Info> infoList = new ArrayList<>();
    List<Info> infoListFiltered = new ArrayList<>();
    infoList.add(new Info("a",1, 2));
    infoList.add(new Info("b",2, 2));
    infoList.add(new Info("c",1, 3));
    infoList.add(new Info("d",1, 2));
    infoList.add(new Info("e",1, 2));
    for (Info info:infoList){
        int index=getDuplicateIndex(infoListFiltered,info);
        if(index==-1){
            infoListFiltered.add(info);
        }else{
            infoListFiltered.get(index).name+=","+info.name;
        }
    }
}

private int getDuplicateIndex(List<Info> infoListFiltered,Info info){
    for (int i = 0; i < infoListFiltered.size(); i++){
        if(infoListFiltered.get(i).height==info.height && infoListFiltered.get(i).weight==info.weight){
            return i;
        }
    }
    return -1;
}

关于java - 如何忽略列表中的重复项并改为添加一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47990451/

相关文章:

Java Selenium Web 元素变量与 Web 元素数组

java - Spring-boot jca cci需要连接池

python - 反向打印链表

java - 100% CPU 利用率需要帮助分析线程转储

java - 如何在 Eclipse 中配置 Java -D 标志

java - Android - 将对象保存到 SharedPreferences 并在应用程序中的任何位置获取它

平台类型的 Android Studio Kotlin 类型不匹配

Android:将 View 存储为类中的全局变量是一种好习惯吗?

c++ - 为满足条件的特定整数搜索 vector 的有效方法?

algorithm - 用洞(0)收集雨水 ii(LeetCode)