我的想法是这样的。 我想创建一个脚本,链接共同的朋友
例如:
Damian之友= [Cristian,Pedro,Juan,Andres]
安德烈斯的朋友= [马塞拉,达米安,朱利安,卡洛斯]
Lucas之友= [John,Damian,Andres,Francisco]
罗马之友= [Albert,Lourdes,Jennifer,Diego]
Diego的朋友= [Magali,Brian,Andrew,Peter]
Brian的朋友= [等等]
狮子座的朋友= [等等]
拉米罗之友= [等等]
佛朗哥之友= [等等]
我应该选择5个名字,我不得不说是否有任何共同的朋友以及名字是什么。名称将限制在约60。他们将成为团体的4个名字。
答案 0 :(得分:1)
使用http://jsfiddle.net/6v4zzgjj/
listA.retainAll(listB);
// listA now contains only the elements which are also contained in listB.
所以复制第一个列表并对所有五个列表重复retainAll。 我认为这是一种简单的方法。
参考这个答案 Collection#retainAll().
答案 1 :(得分:0)
我假设通用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
}