gpt4 book ai didi

java - 比较java中两个arrayList的元素

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:16 24 4
gpt4 key购买 nike

我有两个字符串类型的数组列表..一个包含“book1”、“book2”、“book3”和“book4”的列表。另一个 arrayList 包含“book1”、“book2”、“book3”。所以,第一个列表的大小是 4,第二个是 3。我创建了另一个 arrayList 等于第一个列表的大小

List<Integer> comparingList = new ArrayList<Integer>();
//adding default values as one
for(int a=0;a<firstList.size();a++){
comparingList.add(0);

}

如果两个列表之间有任何内容相等,我将设置 1 而不是 0。

所以新的 arrayList(comparingList) 应该有 1,1,1,0 个元素

for(int counter = 0;counter < firstList.size();counter++){
for(int counter1 = 0;counter1 < secondList.size();counter1++){
if(firstList.get(counter).equals(secondList.get(counter1))){
comparingList.set(counter,1);
break;
}
}

}

但是当我这样做时,我无法设置 1,因为我无法进入 if 条件,任何人都可以帮助我吗

最佳答案

仅迭代第一个长度较大的数组列表并检查第二个数组列表中的包含,如果找到则设置一个,否则什么都不做

for(int counter = 0; counter < firstList.size(); counter++) {
if(secondList.contains(firstList.get(counter))) {
comparingList.set(counter,1);
}
}

整个java程序

尝试在 http://www.compileonline.com/compile_java_online.php 中运行下面的程序

import java.util.ArrayList;
import java.util.List;

public class CompareArrayListTest{

public static void main(String[] args) {

ArrayList<String> firstList = new ArrayList<String>();

firstList.add("book1");
firstList.add("book2");
firstList.add("book3");
firstList.add("book4");

ArrayList<String> secondList = new ArrayList<String>();

secondList.add("book1");
secondList.add("book2");
secondList.add("book3");

List<Integer> comparingList = new ArrayList<Integer>();
// adding default values as one
for (int a = 0; a < firstList.size(); a++) {
comparingList.add(0);

}

for (int counter = 0; counter < firstList.size(); counter++) {
if (secondList.contains(firstList.get(counter))) {
comparingList.set(counter, 1);
}
}

System.out.println(comparingList);

}

BitSet bitset = new BitSet();
// adding default values as one
for (int a = 0; a < firstList.size(); a++) {
comparingList.add(0);

}

for (int counter = 0; counter < firstList.size(); counter++) {
for (int counter2 = 0; counter < secondList.size(); counter++) {
if (secondList.get(counter2).equals(firstList.get(counter))) {
bitset.set(counter, 1);
}
}
}

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

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