我有一个列表列表,每个列表中有两个字符串存储在两个人的名字中。我试图遍历这些,找到类似的条目,并将它们作为潜在的FOAF(朋友的朋友)进行匹配。
我尝试了这个,但它没有像我希望的那样工作。
public static void recommend(List<List<String>> lists) {
for(int i = 0; i < lists.size() - 1; i++)
{
List<String> list = lists.get(i);
List<String> listt = lists.get(i+1);
if(list.contains(listt.get(0)))
{
if(list.get(0) != listt.get(0))System.out.println(list.get(0) + " and " + listt.get(0) + ": a match made in heaven.");
else System.out.println(list.get(0) + " and " + listt.get(1) + ": a match made in heaven.");
}
if(list.contains(listt.get(1)))
{
if(list.get(1) != listt.get(1))System.out.println(list.get(1) + " and " + listt.get(1) + ": a match made in heaven.");
else System.out.println(list.get(1) + " and " + listt.get(0) + ": a match made in heaven.");
}
}
}
考虑到的输出 Jonas,Debby
Debby,Juliana
朱莉安娜,弗雷德里克
弗雷德里克,乔纳斯比安卡,亚伯拉罕
我需要找到哪些可能是潜在的匹配。例如,由于Debby是Juliana的朋友,而Juliana是Frederick的朋友,Frederick和Debby可以成为好朋友。
答案 0 :(得分:0)
我建议切换到一个看起来像这样的二维数组:
String[][] friends = new String[1000][2];
现在我们将添加一些变量:
String myName, friendsName;
然后你可以使用for循环遍历这个:
for(int i = 0; i < friends.length; i++){
if(friends[i][0] == friendsName){
System.out.println("Found possible match for " + myName + ": " + friends[i][0] + "!";
} else {
System.out.println("Found possible match for " + myName + ": " + friends[i][1] + "!";
}
}
纯粹运行此代码将为您提供myName中定义的人名与friendsName中定义的朋友姓名之间的所有共同朋友。
如果您遇到任何问题,请告诉我!