共同好友 java?
Friends in common java?
我的想法是这样的。
我想创建一个脚本,链接共同的朋友
例如:
达米安的朋友 = [克里斯蒂安、佩德罗、胡安、安德烈斯]
安德烈斯的朋友 = [玛塞拉、达米安、朱利安、卡洛斯]
卢卡斯的朋友 = [约翰、达米安、安德烈斯、弗朗西斯科]
罗马之友 = [阿尔伯特、卢尔德、詹妮弗、迭戈]
迭戈的朋友 = [Magali、Brian、Andrew、Peter]
Brian 的朋友 = [等等]
狮子座的朋友 = [等等]
拉米罗的朋友们 = [等等]
佛朗哥之友 = [等]
我要select5个名字,有没有共同的朋友,名字都说一下。名称将被限制为大约 60 个。他们将是4个团体名称。
listA.retainAll(listB);
// listA now contains only the elements which are also contained in listB.
因此复制第一个列表并为所有五个列表重复 retainAll。
我认为这是一种简单的方法。
参考这个答案
Common elements in two lists
我假设常见 Java,你说的是 Java,而不是 Javascript。不管你怎么称呼它为脚本……一段代码也是在堆栈溢出问题上得到好的答案所必需的,我不知道你是在使用数组、列表,甚至是地图……我会给出一个答案对于每个。但是,请下次提问时提供更详细的信息。
列表有一个名为 contains() 的方法,您可以将对象传递给该方法。
从这里开始,有两种方法可以使用它,首选方法是通过列表
package com.gamsion.chris;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class SOListExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
List<String> list3 = new ArrayList<String>();
String name1 = "John";
String name2 = "Chris";
String name3 = "Madalyn";
list1.add(name1);
list2.add(name1);
list2.add(name2);
list3.add(name2);
list3.add(name3);
list1.add(name3);
list2.add(name3);
List<List<String>> lists = new ArrayList<List<String>>();
lists.add(list1);
lists.add(list2);
lists.add(list3);
System.out.println(getCommonFriends(lists));
}
public static List<String> getCommonFriends(List<List<String>> lists) {
List<String> commonfriends = lists.get(0);
Iterator<List<String>> it = lists.iterator();
while(it.hasNext()){
commonfriends.retainAll(it.next());
}
return commonfriends;
}
}
这是我能给出的最佳答案。当然适应你的需要,它应该很适合。 (我只是把它作为一个可测试的例子。你得到这些列表的方式和数量完全取决于你。)据我所知,它也是最有效的,尽管最初的 "commonfriends = lists,get(0)" 确实让我很烦哈哈。
编辑:为下面的评论添加答案。
为此,建议添加另一种方法来比较两个列表,如下所示:
public static List<String> compareCommonFriends(List<String> list1, List<String> list2){
list1.retainAll(list2);
return list1;
}
此外,如果您想做一个如果找到了某些东西,无论是 compareCommonFreinds() 还是 getCommonFriends(),您可以这样做:
if(compareCommonFriends(list1, list2).isEmpty()){
//your code
}
//OR
if(!compareCommonFriends(list1, list2).isEmpty()){
//your code
}
我的想法是这样的。 我想创建一个脚本,链接共同的朋友
例如:
达米安的朋友 = [克里斯蒂安、佩德罗、胡安、安德烈斯]
安德烈斯的朋友 = [玛塞拉、达米安、朱利安、卡洛斯]
卢卡斯的朋友 = [约翰、达米安、安德烈斯、弗朗西斯科]
罗马之友 = [阿尔伯特、卢尔德、詹妮弗、迭戈]
迭戈的朋友 = [Magali、Brian、Andrew、Peter]
Brian 的朋友 = [等等]
狮子座的朋友 = [等等]
拉米罗的朋友们 = [等等]
佛朗哥之友 = [等]
我要select5个名字,有没有共同的朋友,名字都说一下。名称将被限制为大约 60 个。他们将是4个团体名称。
listA.retainAll(listB);
// listA now contains only the elements which are also contained in listB.
因此复制第一个列表并为所有五个列表重复 retainAll。 我认为这是一种简单的方法。
参考这个答案 Common elements in two lists
我假设常见 Java,你说的是 Java,而不是 Javascript。不管你怎么称呼它为脚本……一段代码也是在堆栈溢出问题上得到好的答案所必需的,我不知道你是在使用数组、列表,甚至是地图……我会给出一个答案对于每个。但是,请下次提问时提供更详细的信息。
列表有一个名为 contains() 的方法,您可以将对象传递给该方法。 从这里开始,有两种方法可以使用它,首选方法是通过列表
package com.gamsion.chris;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class SOListExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
List<String> list3 = new ArrayList<String>();
String name1 = "John";
String name2 = "Chris";
String name3 = "Madalyn";
list1.add(name1);
list2.add(name1);
list2.add(name2);
list3.add(name2);
list3.add(name3);
list1.add(name3);
list2.add(name3);
List<List<String>> lists = new ArrayList<List<String>>();
lists.add(list1);
lists.add(list2);
lists.add(list3);
System.out.println(getCommonFriends(lists));
}
public static List<String> getCommonFriends(List<List<String>> lists) {
List<String> commonfriends = lists.get(0);
Iterator<List<String>> it = lists.iterator();
while(it.hasNext()){
commonfriends.retainAll(it.next());
}
return commonfriends;
}
}
这是我能给出的最佳答案。当然适应你的需要,它应该很适合。 (我只是把它作为一个可测试的例子。你得到这些列表的方式和数量完全取决于你。)据我所知,它也是最有效的,尽管最初的 "commonfriends = lists,get(0)" 确实让我很烦哈哈。
编辑:为下面的评论添加答案。
为此,建议添加另一种方法来比较两个列表,如下所示:
public static List<String> compareCommonFriends(List<String> list1, List<String> list2){
list1.retainAll(list2);
return list1;
}
此外,如果您想做一个如果找到了某些东西,无论是 compareCommonFreinds() 还是 getCommonFriends(),您可以这样做:
if(compareCommonFriends(list1, list2).isEmpty()){
//your code
}
//OR
if(!compareCommonFriends(list1, list2).isEmpty()){
//your code
}