Java 如何验证一个列表元素是否与另一个列表的顺序相同?

Java 如何验证一个列表元素是否与另一个列表的顺序相同?,java,sorting,arraylist,Java,Sorting,Arraylist,列表1[1,2,3,4,5,6]——基本列表 清单2[1,2,4,3,6,5] 输出:4,6的顺序不正确 我必须检查订单是否符合清单1。如果没有,则我必须按照列表1打印所有顺序不正确的元素。您可以使用列表迭代器比较列表1和列表2的值,如果比较结果为false,则可以打印列表2的值。单步遍历两个列表并打印不同的元素非常简单,但似乎您只想输出一次不同的元素。为此,您需要跟踪您已经看到的内容,例如,使用集合 static void listCompare(List<Integer> lis

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

清单2[1,2,4,3,6,5]

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


我必须检查订单是否符合清单1。如果没有,则我必须按照列表1打印所有顺序不正确的元素。

您可以使用列表迭代器比较列表1和列表2的值,如果比较结果为false,则可以打印列表2的值。

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

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));
        }
    }
}

你尝试了什么?在哪里卡住了?3和5不是也不正确吗?
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)