【问题标题】:How to know only new values comparing two arrays? [closed]如何只知道比较两个数组的新值? [关闭]
【发布时间】:2021-11-25 19:42:53
【问题描述】:

我有两个数组(Java):

  ArrayList<String> arrA = new ArrayList<String>();
  arrA.addAll(Arrays.asList(new String[]{"0", "1", "2", "3", "4"}));

  ArrayList<String> arrB = new ArrayList<String>();
  arrB.addAll(Arrays.asList(new String[]{"0", "1", "2", "3", "4", "5", "X", "6", "7"}));

而且我需要知道如何仅填充在第二个数组中找到的新值的第三个数组。我尝试做循环,但效果不佳。

有什么想法吗?

【问题讨论】:

  • 请添加您不工作的代码和调试信息。
  • 你能告诉我们你做了什么并描述了哪些地方运作不好?
  • ArrayList&lt;String&gt; arrC = new ArrayList&lt;&gt;(arrB); arrC.removeAll(arrA);.
  • 如果您想知道arrB 中不在arrA 中的所有元素,您只需从arrB删除所有 arrA 中的元素。
  • “请一分钟,我在循环中添加了 if 语句,但结果错误”请显示您的代码。我们不能不看就说它有什么问题。

标签: java arrays algorithm


【解决方案1】:

你可以通过下面的代码看到两个ArrayList的区别:

ArrayList<String> differences = new ArrayList<>(arrB);
differences.removeAll(arrA);

然后您将拥有一个新的ArrayList&lt;String&gt; differences,其中包含您的第一个 ArrayList 没有的所有字符串。

如果您想多次执行此操作,您只需更新您的列表:

arrA = new ArrayList<>(arrB);
arrB.add("f");
arrB.add("e");

然后您可以简单地重新运行第一个代码段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-08
    • 2017-06-13
    • 1970-01-01
    • 2022-10-08
    • 2020-08-24
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多