Java 用于确定两个arraylist中不同项目的编号的代码
我有两个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<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);