【问题标题】:How can I verify that a list elements are in same order of another list or not?如何验证列表元素是否与另一个列表的顺序相同?
【发布时间】:2020-05-12 17:33:45
【问题描述】:

list1 [1,2,3,4,5,6] --基本列表

list2 [1,2,4,3,6,5]

输出:4,6 的顺序不正确

我必须检查订单是否应按照 list1。如果不是,那么我必须按照 list1 打印所有顺序不正确的元素。

【问题讨论】:

  • 你尝试了什么,你在哪里卡住了?
  • 3和5也不对吗?

标签: java sorting arraylist


【解决方案1】:

遍历两个列表并打印不同的元素非常简单,但您似乎只想输出不同的元素一次。为此,您需要跟踪您已经看过的内容,例如使用Set

static void listCompare(List<Integer> list1, List<Integer> list2)
{
    Set<Integer> seen = new HashSet<>();

    int minLen = Math.min(list1.size(), list2.size());
    for(int i=0; i<minLen; i++)
    {
        if(list1.get(i) != list2.get(i) && !seen.contains(list2.get(i)))
        {
            seen.add(list1.get(i));
            System.out.format("%d (%d)%n", list2.get(i), list1.get(i));
        }
    }
}

测试:

List<Integer> list1 = Arrays.asList(1,2,3,4,5,6);
List<Integer> list2 = Arrays.asList(1,2,4,3,6,5);       
listCompare(list1, list2);

输出:

4 (3)
6 (5)

【讨论】:

    【解决方案2】:

    您可以使用列表迭代器比较 list1 和 list2 的值,如果比较结果为 false,那么您可以打印 list2 的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-01
      • 2020-07-15
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      相关资源
      最近更新 更多