gpt4 book ai didi

java - 比较同一个List Java中的元素

转载 作者:行者123 更新时间:2023-11-29 07:48:12 25 4
gpt4 key购买 nike

我想比较同一个 List (The List "list) 中的元素,如果它们相同则打印出一行,我对编程还很陌生,我还不完全理解列表数组之间的区别以及您何时使用它们。

有人友善地建议了下面的代码,尽管它编译了,但没有打印出任何东西。由于我的数组中有两对,我希望至少打印一次。非常感谢任何帮助!

                        List<Double> list = new ArrayList<Double>();

while (search.find()){
list.add(Double.parseDouble(search.group(1)));
}


for(int i= 0 ; i < list.size()-1; i++){
//System.out.println(list.get(i)); // Successfully prints out all doubles in the SHADING:BUILDING:DETAILED class
for(int k = i+1 ; k < list.size() ; k++){
if(list.get(i) == list.get(k)){
System.out.println(i + "and" + k + "are pairs");
}
}
}
}
}

最佳答案

您对比较进行编码的方式会自行重复。此外,恐怕这不是您访问列表中元素的正确方式。

例如,假设您有 i = 0(例如值 2.0)和 k = 2(值 5.2),但后来您有 i = 2 (5.2) 和 k = 0 (2.0),这是相同的。我建议您执行以下操作,避免重复。

for (int i = 0; i < list.size()-1; i++) 
for (int k = i+1; k < list.size(); k++)
if(list.get(i) == list.get(k))
System.out.println(i + " and "+ k +" are pairs");

当然,您必须确保列表的大小大于 1,否则会抛出 OutOfBoundsException。希望这有帮助^^

编辑#2如果它包含一个 null-safe equals,请尝试使用以下内容:

if(Objects.equals(list.get(i), list.get(k)))

关于java - 比较同一个List Java中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23535346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com