推荐一堆列表中的朋友

时间:2018-05-06 00:29:40

标签: java list iteration logic

我有一个列表列表,每个列表中有两个字符串存储在两个人的名字中。我试图遍历这些,找到类似的条目,并将它们作为潜在的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可以成为好朋友。

1 个答案:

答案 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中定义的朋友姓名之间的所有共同朋友。

如果您遇到任何问题,请告诉我!