java - 如何比较两个不同大小的数组列表并检查元素的顺序

标签 java arraylist

我如何比较两个不同大小的数组列表并检查元素的顺序?

1.首先检查ArrayList1是list2的子集

2.第二次检查ArrayList2与List1的顺序相同,忽略随机元素

Arraylist1{"this", "is", "a", "coding", "test"};
Arraylist2{"this", "is", "random1", "a", "random2", "coding", "random3", "test"};

如果 List2 是这样的顺序,测试将通过:

"this" "is" "a" "coding" "test" 

如果列表 2 有任何其他顺序,则测试将失败:

“a”、“is”、“coding”、“test”、“this”,或者缺少这 5 个词中的任何一个。

程序应该忽略列表 2 中任意数量的随机值(如 random1、random2 和 random3)。

我怎样才能实现这种情况?

我尝试了 for 循环和迭代器。它没有用,他们给了我两个 ArrayList 的共同元素,但没有给我“顺序”。我还能做什么?

  1. for 循环使用:

    list1.contains(list2.get(i)))
    

    但这只是比较值,并不检查顺序。

  2. 带有 while 循环的迭代器:

    Iterator<String> List1_Iterator = List1.iterator();
    
    
    while (List1_Iterator.hasNext()) {
    }
    

    这也不检查元素的顺序。

最佳答案

您也可以按照您的步骤执行此简单过程。 1)比较元素。 2) 比较顺序。

import java.util.*;
class Stack1
{
    public static void main(String args[])
    {
        ArrayList<String> list=new ArrayList<String>();
        list.add("First");
        list.add("name");
        list.add("is");
        list.add("Jay");

        ArrayList<String> list2=new ArrayList<String>();
        list2.add("First");
        list2.add("name");      
        list2.add("is");
        list2.add("Sudeep");

        ArrayList<String> list3=new ArrayList<String>();            

        for(int i=0;i<list2.size();i++)
        {
            for(int j=0;j<list.size();j++)
            {                       
                if(list2.contains(list.get(j))==true)
                {
                    if(list2.get(i)==list.get(j))
                    {
                        list3.add(list2.get(i));
                    }   
                }
                else{ break; }
            }
        }

        if(list.equals(list3))
        {
            System.out.println("true");
        }
        else{System.out.println("false");}
    }
}

关于java - 如何比较两个不同大小的数组列表并检查元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54280415/

相关文章:

java - 如何将 json 文件转换为 ArrayList<String>

java - 扫描器类 NoSuchElementFoundException

Java 日志覆盖工具

java - return<string> 没有返回字符串,因此我无法在另一个类中使用该字符串

java - 在java中生成表

c# - 比较两个数组或数组列表,找出相似和不同的值

java - 在 java 中扩展 Tiny url

java - 如何使用arraylist JAVA从矩阵中获取值

java - 需要帮助在处理中将整数数组添加到数组列表

android - 如何传递 4 arraylist 作为 httpurlconnection Get 的输入