当前位置: 首页 > 知识库问答 >
问题:

如何比较ArrayList元素

濮阳俊明
2023-03-14

我编写了下面的代码来从ArrayList中获取重复的元素。我的aerospikePIDs列表没有任何重复的值,但是当我执行下面的代码时,它仍然在读取if条件。

ArrayList<Integer> aerospikePIDs = new ArrayList<Integer>();    

ArrayList<Integer> duplicates = new ArrayList<Integer>();
    boolean flag;
    for(int j=0;j<aerospikePIDs.size();j++) {
        for(int k=1;k<aerospikePIDs.size();k++) {
            if(aerospikePIDs.get(j)==aerospikePIDs.get(k)) {
            duplicates.add(aerospikePIDs.get(k));
            flag=true;
            }
            if(flag=true)
System.out.println("duplicate elements for term " +searchTerm+duplicates);
    }   
                }

共有1个答案

路伟
2023-03-14

您的内部循环应该从j+1(而不是从1)开始,否则当j=1(j的第二次迭代)时,对于k=1(对于j值等于1的k的第一次迭代)。

aerospikePIDs.get(j)==aerospikePIDs.get(k) 

返回true

所以代码应该是:

ArrayList<Integer> aerospikePIDs = new ArrayList<Integer>();    

ArrayList<Integer> duplicates = new ArrayList<Integer>();

for (int j = 0; j < aerospikePIDs.size(); j++) {
    for (int k = j + 1; k < aerospikePIDs.size(); k++) {
        if (aerospikePIDs.get(j)==aerospikePIDs.get(k)) {
            duplicates.add(aerospikePIDs.get(k));
            System.out.println("duplicate elements for term " +searchTerm+duplicates);
        }
    }   
}
 类似资料:
  • 问题内容: 我有两个。每个大小为100000。我想比较它们并计算匹配的元素。 这是我的代码: 在这里比较过程要花费很多时间。 如何解决和优化此问题。 问题答案: 您应该使用:返回一个包含collection1中所有元素的集合,这些元素也处于collection2中。

  • 我得到了两个字符串类型arraylist。一个列表包含“book1”、“book2”、“book3”和“book4”。另一个arrayList包含“book1”、“book2”、“book3”。因此,第一个列表的大小为4,第二个列表的大小为3。我创建了另一个与第一个列表大小相等的arrayList 但是当我这样做的时候,我不能设置1,因为我不能进入if状态,有人能帮我吗

  • 问题内容: 我得到了两个String类型的arraylist ..一个包含“ book1”,“ book2”,“ book3”和“ book4”的列表。另一个arrayList包含“ book1”,“ book2”,“ book3”。因此,第一个列表的大小为4,第二个列表的大小为3。我创建了另一个与第一个列表的大小相等的arrayList 如果两个列表之间的内容相等,那么我将设置为1而不是0。 所

  • 问题内容: 我了解这是作为双重链接列表实现的。它在add和remove上的性能优于,但在get和set方法上却较差。 这是否意味着我应该选择在插入? 我写了一个小测试,发现插入速度更快。那如何链表比? 请参考下面的示例。 问题答案: Linkedlist确实在插入时速度更快,问题出在您的示例中。在您的代码中,您一直都需要附加到末尾。对于ArrayList,它与LinkedList一样容易。您应该做

  • 问题内容: 我有两个Arraylist 其包含以下值是 AllProcessList arraylist包含所有Java进程,RunningProcessList arraylist包含当前正在运行的进程。我想比较这两个arraylist并显示是否未运行该进程。例如,比较两个列表并要显示以下进程未运行。 我使用了以下代码,但无法正常工作。 问题答案: 查看List的文档,尤其是removeAll(

  • 我正在做一个学校作业,我必须检查ArrayList teKoop中的某些对象是否不在ArrayList mijnGames中,问题是我一直设置这个错误代码:索引1 out of length 1 out of bounds for length 1 这里有什么明显的问题吗? 如有任何帮助,我们将不胜感激。 因此indexOutOfBound错误已修复,新问题出现:s 它一直返回给我一个空的Arra