当前位置: 首页 > 面试题库 >

在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序

龙默
2023-03-14
问题内容

我试图“合并”两个arrayList,产生一个新的arrayList,其中包含两个组合arrayLists中的所有数字,但没有任何重复的元素,它们应该是有序的。我想出了下面的这段代码。我遍历了它,这对我来说很有意义,但是我不确定是否可以使用<或>比较arrayLists中的get(i)。我将array1中的所有元素添加到plusArray中。然后,我将遍历plusArray并将其与array2进行比较,以查看是否array2的任何元素都存在于plusArray中。如果他们这样做,我什么也不做,但是如果他们不这样做,我将尝试将其添加到正确的位置。也许我嵌套的for循环使用不正确?注意:ArrayList由用户按升序进行预排序

     ArrayList<Integer> plusArray = new ArrayList<Integer>();
for(int i = 0; i < array1.size(); i++){
    plusArray.add(array1.get(i));
}

for(int i = 0; i < plusArray.size(); i++){
    for(int j = 0; j < array2.size(); j++){

    if(array2.get(j) < plusArray.get(i)){
        plusArray.add(i,array2.get(j));
    }
    else if(plusArray.get(i).equals(array2.get(j))){
        ;
    }
    else if(array2.get(j) > plusArray.get(i)){
        plusArray.add(i, array2.get(j));
    }

}

更新:我不再得到下面的异常。相反,该程序似乎永远运行。我更改了在<和>条件中添加元素的位置。///这是我的数组列表为以下情况的异常:IntSet 1:{1
2} IntSet 2:{1 3 4}

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at IntSet.plus(IntSet.java:92)
at IntSetDriver.main(IntSetDriver.java:61)

问题答案:

代替编写的代码,您可以使用ArrayList.addAll()合并列表,Collections.sort()对列表进行排序并最终遍历所得ArrayList来删除重复项的方法。因此O(n)+O(n*log(n))+O(n),总复杂度等于O(n*log(n))



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序 (14个答案) 7年前关闭。 我有两个arrayLists 我想要我的最终ArrayList,其中将包含一个元素的 所有 元素以及仅包含两个元素而不包含一个元素的元素。 因此ArrayList final = {A,B,C,D,E,F,G}。 我怎样才能做到这一点

  • 问题内容: 我有以下Java代码,其中我试图将ArrayList复制到另一个ArrayList。 我希望“列表”数组采用以下格式: 但是从上面的代码中,“ list”数组输出看起来像这样: 我想您可能已经注意到了差异。我无法达到预期格式的结果。请建议我任何解决方案!提前致谢!! 问题答案: 然后,你需要的: 请注意,已更改为。在Java命名约定中,变量以小写字母开头。类以大写字母开头。

  • 我正在尝试设置一个webapp,通过JSON发送数据库表。我想不费吹灰之力把所有的参赛作品都寄出去。因此,我将所有字段读取为ArrayList,现在我可以通过JSON逐个解析并发送它们。但是,难道没有一种方便的方法将它们全部打包到一个JsonArray中吗? 下面是我的代码示例:

  • 在Java集合中,哪个集合不允许重复,哪个集合还保留数据的插入顺序?

  • 问题内容: 我有一个家庭作业,需要在以下条件下插入或添加新元素: 元素必须 升序 。 中没有重复的 元素 insert方法运行 O(n) 次。 这是我在添加新元素之前检查重复元素的插入方法。 我该怎么做?谢谢。 加成 这是我的班级名称InSetExtra 我需要插入大尺寸的元素,例如: 我该怎么办? ps。我的教练只需要使用ArrayList 问题答案: 这是我的处理方式:(注释中的解释) 您发布