Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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 用于确定两个arraylist中不同项目的编号的代码_Java_Arraylist - Fatal编程技术网

Java 用于确定两个arraylist中不同项目的编号的代码

Java 用于确定两个arraylist中不同项目的编号的代码,java,arraylist,Java,Arraylist,我有两个arraylist,定义如下 ArrayList<String> list1 = new arrayList<String>(); ArrayList<String> list2 = new arrayList<String>(); list1.add("sultan"); list1.add("Masum"); list1.add("sultan"); list1.add("Sorry"); list1.add("sultan"); l

我有两个arraylist,定义如下

ArrayList<String> list1 = new arrayList<String>();
ArrayList<String> list2 = new arrayList<String>();

list1.add("sultan");
list1.add("Masum");
list1.add("sultan");
list1.add("Sorry");
list1.add("sultan");
list1.add("Masum");
list1.add("sultan");
list1.add("Tarek");
list1.add("sultan");

list2.add("Billal");
list2.add("Masum");
list2.add("Sorry");
list2.add("Sorry");
list2.add("sultan");
list2.add("Masum");
list2.add("Tanha");
list2.add("Tarek");
list2.add("Die");

但是我的代码非常高效。你能给我建议一个更好的方法来达到我的目的吗?

你应该使用
Set
而不是
List
。那你要找的就是。如果允许,您可以使用番石榴

首先,您可以按以下方式初始化您的列表:

List<String> list1 = new ArrayList<>(Arrays.asList(new String[]{"sultan", "Masum", "others..."}));
Collections.copy(newArray, oldArray); 

如果不想更改阵列,可以按如下方式复制它们:

List<String> list1 = new ArrayList<>(Arrays.asList(new String[]{"sultan", "Masum", "others..."}));
Collections.copy(newArray, oldArray); 
您可以使用(来自Apache Commons库),然后对返回的集合执行
size()

    List<String> list1 = new ArrayList<String>();
    List<String> list2 = new ArrayList<String>();

    list1.add("sultan");
    list1.add("Masum");
    list1.add("sultan");
    list1.add("Sorry");
    list1.add("sultan");
    list1.add("Masum");
    list1.add("sultan");
    list1.add("Tarek");
    list1.add("sultan");

    list2.add("Billal");
    list2.add("Masum");
    list2.add("Sorry");
    list2.add("Sorry");
    list2.add("sultan");
    list2.add("Masum");
    list2.add("Tanha");
    list2.add("Tarek");
    list2.add("Die");

    int numOfDiffs = CollectionUtils.disjunction(list1, list2).size();
    System.out.println("Diffs: " + numOfDiffs);
List list1=new ArrayList();
List list2=新的ArrayList();
清单1.添加(“苏丹”);
清单1.添加(“Masum”);
清单1.添加(“苏丹”);
清单1.添加(“对不起”);
清单1.添加(“苏丹”);
清单1.添加(“Masum”);
清单1.添加(“苏丹”);
清单1.添加(“塔瑞克”);
清单1.添加(“苏丹”);
清单2.添加(“账单”);
清单2.添加(“Masum”);
清单2.添加(“对不起”);
清单2.添加(“对不起”);
清单2.添加(“苏丹”);
清单2.添加(“Masum”);
清单2.添加(“Tanha”);
清单2.添加(“塔瑞克”);
清单2.添加(“模具”);
int numOfDiffs=CollectionUtils.disconction(list1,list2).size();
System.out.println(“diff:+numofdiff”);

查看
Set
界面。我认为Set在这里不起作用,因为他在每个列表中都有重复的条目。+1你是对的,对不起,我没有正确理解这个问题CollectionUtils的包名是什么?那是来自Apache Commons库。确切地说,我现在在帖子中明确添加了!
集合
类中还有一个“标准”集合:
公共静态布尔不相交(集合c1,集合c2)
该“标准”不相交返回一个布尔值,指示:如果两个集合没有公共元素。但OP想计算一下差异。
    List<String> list1 = new ArrayList<String>();
    List<String> list2 = new ArrayList<String>();

    list1.add("sultan");
    list1.add("Masum");
    list1.add("sultan");
    list1.add("Sorry");
    list1.add("sultan");
    list1.add("Masum");
    list1.add("sultan");
    list1.add("Tarek");
    list1.add("sultan");

    list2.add("Billal");
    list2.add("Masum");
    list2.add("Sorry");
    list2.add("Sorry");
    list2.add("sultan");
    list2.add("Masum");
    list2.add("Tanha");
    list2.add("Tarek");
    list2.add("Die");

    int numOfDiffs = CollectionUtils.disjunction(list1, list2).size();
    System.out.println("Diffs: " + numOfDiffs);