Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从两个列表中分离相似的元素,并将剩余的元素放入另一个列表中_Java_Arrays_List_Arraylist - Fatal编程技术网

Java 从两个列表中分离相似的元素,并将剩余的元素放入另一个列表中

Java 从两个列表中分离相似的元素,并将剩余的元素放入另一个列表中,java,arrays,list,arraylist,Java,Arrays,List,Arraylist,我有一大堆字符串。我有一个小字符串列表,它实际上是大字符串列表的子集。现在,我需要将匹配项分离到源列表中,将不匹配项分离到目标列表中 我可以分离匹配项,但无法创建不匹配项的正确列表 下面是我编写的java代码: public class Demo { public static void main(String[] args) { List<String> smallList = new ArrayList<String>(); List<Stri

我有一大堆字符串。我有一个小字符串列表,它实际上是大字符串列表的子集。现在,我需要将匹配项分离到源列表中,将不匹配项分离到目标列表中

我可以分离匹配项,但无法创建不匹配项的正确列表

下面是我编写的java代码:

public class Demo {
public static void main(String[] args) {

    List<String> smallList = new ArrayList<String>();
    List<String> bigList = new ArrayList<String>();
    List<String> sourceList = new ArrayList<String>();
    List<String> targetList = new ArrayList<String>();

    smallList.add("jammu");
    smallList.add("surat");
    smallList.add("hyderabad");

    bigList.add("hyderabad");
    bigList.add("mumbai");
    bigList.add("delhi");
    bigList.add("jammu");
    bigList.add("patna");
    bigList.add("kanpur");
    bigList.add("surat");
    bigList.add("bangalore");
    bigList.add("chennai");
    bigList.add("kota");

    for(int i=0; i<smallList.size();i++)
    {
        for(int j=0; j<bigList.size(); j++)
        {
            if(smallList.get(i).equalsIgnoreCase(bigList.get(j)))
            {
                targetList.add(smallList.get(i));
                break;
            }
                            else{
                                    targetList.add(bigList.get(j));
                            }

        }

    }

    System.out.println("========== Source List =============");
    System.out.println(sourceList);

    System.out.println("========== Target List =============");
    System.out.println(targetList);

}

}
我们需要的是:

========== Source List =============
[mumbai, delhi, patna, kanpur, bangalore, chennai, kota]
========== Target List =============
[jammu, surat, hyderabad]
非常感谢您的帮助


更新:我无法使用removeAll创建源列表。必须浏览每条记录才能分离内容。

首先将整个
bigList
复制到
sourceList
中。然后在匹配项上,将其添加到
targetList
并从
sourceList

for(int i=0; i<smallList.size();i++)
{
    for(int j=0; j<bigList.size(); j++)
    {
        if(smallList.get(i).equalsIgnoreCase(bigList.get(j)))
        {
            targetList.add(smallList.get(i));
            sourceList.remove(smallList.get(i));
            break;
        }
    }
}
for(int i=0;i
for(int i=0; i<smallList.size();i++)
{
    for(int j=0; j<bigList.size(); j++)
    {
        if(smallList.get(i).equalsIgnoreCase(bigList.get(j)))
        {
            targetList.add(smallList.get(i));
            sourceList.remove(smallList.get(i));
            break;
        }
    }
}