Map<String, int[]> nameWithLuckyNumbers = null;
List<List<String>> finalGroup = new ArrayList<>();
nameWithLuckyNumbers.put("Vinay" , new int[]{1, 2, 4}) ;
nameWithLuckyNumbers.put("Ajith" , new int[]{1,3 ,4,5, 8}) ;
nameWithLuckyNumbers.put("Karthi" ,new int[]{9,6,7}) ;
nameWithLuckyNumbers.put("Surya" ,new int[]{10,11,12});
nameWithLuckyNumbers.put("Prabhu" ,new int[]{10,11,12});
nameWithLuckyNumbers.put("kumar" ,new int[]{8,14,15});
for(Map.Entry<String, int[]> entry:nameWithLuckyNumbers.entrySet()) {
for (int number : entry.getValue()) {
/*I need Logic here.
Values (one array) has to be compared with another Values(Another Array).
if any one number is matching between 2 arrays-
that corresponding Keys should come under same List.
if the Numbers inside Array (Value of key) is not matching with anyother Key's Value ,
that should come in new List ,Not in the same List*/
}
}
键“Vinay”和“Ajith”在数组中具有相同的值[1,4]
所以它们必须被分组在一起。
List1.add("vinay");
List1.add("ajith");
密钥 Kumar 和 Ajith 在数组中具有相同的值 [8]。
所以 kumar 也必须归为一组。
List1.add("kumar");
键“Surya”和“Prabhu”在其 valueArray 中具有相同的值。
因此创建 NewList List2。
List2.add("Surya");
List2.add("Prabhu");
键“Karthi”的值与任何其他键的值不匹配,因此,应将其添加到单独的列表中。
List3.add("Karthi");
输出:
输出应该是列表的列表。
List<List<String>> finalGroup = new ArrayList<>();
finalGroup.addAll(List1);
finalGroup.addAll(List2);
finalGroup.addAll(List3);
return finalGroup;
你想要的是不相交的集合。先看看理论,我会在这里以简化的方式告诉你剩下的。
然后你将拥有有限的一组代表,这些代表将是你的 List1、List2 等等。
如果您有任何疑问,请不要费心去问:)