Java 比较同一列表中的元素
我想比较同一个Java 比较同一列表中的元素,java,list,arraylist,Java,List,Arraylist,我想比较同一个列表(“列表”列表)中的元素,如果它们是相同的打印行,我对编程相当陌生,我还不完全理解列表与数组之间的差异以及使用它们的时间 有人善意地建议了下面的代码,尽管它没有打印出任何内容。由于我的数组中有两对,我希望至少打印一次。任何帮助都将不胜感激。谢谢 List<Double> list = new ArrayList<Double>(); while (searc
列表(“列表”列表)中的元素,如果它们是相同的打印行,我对编程相当陌生,我还不完全理解列表与数组之间的差异以及使用它们的时间
有人善意地建议了下面的代码,尽管它没有打印出任何内容。由于我的数组中有两对,我希望至少打印一次。任何帮助都将不胜感激。谢谢
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");
}
}
}
}
}
List List=new ArrayList();
while(search.find()){
list.add(Double.parseDouble(search.group(1));
}
对于(int i=0;i
列表基本上只是一个可变长度数组。您可以使用get(int)方法从中访问数据,该方法从列表中获取第n个值,并设置(int,Object)将第n个值设置为给定对象
javadocs是您的朋友。列表基本上只是一个可变长度数组。您可以使用get(int)方法从中访问数据,该方法从列表中获取第n个值,并设置(int,Object)将第n个值设置为给定对象
javadocs是您的朋友。首先,您应该修复:
if(list[i]= list[k]){
将是:
if(list.get(i) == list.get(k)){
其次,您应该添加一个条件以确保i!=k
(或者换句话说,您没有将元素与自身进行比较)
第三,您不能像您那样访问列表:list[i]
您应该使用list。get(i)
首先,您应该修复:
if(list[i]= list[k]){
将是:
if(list.get(i) == list.get(k)){
其次,您应该添加一个条件以确保i!=k
(或者换句话说,您没有将元素与自身进行比较)
第三,你不能像你那样访问列表:list[i]
你应该使用list.get(i)
你编码的方式会重复比较。此外,恐怕这不是访问列表中元素的正确方式
例如,假设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");
编码比较的方式会重复。此外,恐怕这不是访问列表中元素的正确方式
例如,假设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");
您可以使用以下代码:
public void compareElementToList() {
List<Double> list = Arrays.asList(1.0, 1.2, 1.3, 1.4, 1.0);
for (int i = 0; i < list.size(); i++) {
Double itemI = list.get(i);
for (int j = 0; j < list.size(); j++) {
Double itemJ = list.get(j);
if (i != j) {
if (itemI.compareTo(itemJ) == 0) {
System.out.println("Element " + i + " and " + j + " are pairs.");
} else {
System.out.println("There are no even elements.");
}
} else {
System.out.println("Element omited.");
}
}
}
}
public void compareElementToList(){
List=Arrays.asList(1.0,1.2,1.3,1.4,1.0);
对于(int i=0;i
您可以使用以下代码:
public void compareElementToList() {
List<Double> list = Arrays.asList(1.0, 1.2, 1.3, 1.4, 1.0);
for (int i = 0; i < list.size(); i++) {
Double itemI = list.get(i);
for (int j = 0; j < list.size(); j++) {
Double itemJ = list.get(j);
if (i != j) {
if (itemI.compareTo(itemJ) == 0) {
System.out.println("Element " + i + " and " + j + " are pairs.");
} else {
System.out.println("There are no even elements.");
}
} else {
System.out.println("Element omited.");
}
}
}
}
public void compareElementToList(){
List=Arrays.asList(1.0,1.2,1.3,1.4,1.0);
对于(int i=0;i
如果你有适用于数组的代码,但你不知道两者之间的区别,那么为什么要使用列表。我强烈建议你阅读文档,以便更好地了解这两个文档,从而找出你需要的是哪一个,如果你有适用于数组的代码,你为什么要使用列表无论如何,我不知道这两者之间的区别。我强烈建议您阅读文档,以便更好地了解这两者,以便您能够确定您需要的是哪一个。谢谢这很好地编译,但我没有得到任何打印输出。没有具有相同值的数字^^。尝试手动添加一些,看看是否有效对你来说正确。肯定有一些数字具有相同的值。我不确定发生了什么,我正在尝试不同的格式,当我有if(list.get(I)!=list.get(k))它打印出来,所以我很确定格式没有问题;但是我尝试比较的数字非常精确,例如2.1612378517我应该使用双精度还是比较它们或其他什么?谢谢,这编译得很好,但我没有得到任何打印输出。没有具有相同值的数字^^。尝试手动添加一些,看看它是否适合您。肯定有一些数字具有相同的值我不确定发生了什么我正在尝试不同的格式当我有if(list.g)时