2017-10-02 19 views
-2

私は人の友人と、最も友人を返す方法を作ることになっています。私は2つのクラスを持っています:人とネットワーク。人(最も友人がいる人の友人)を返すことになっています。 私はArrayListをインポートしましたが、それはそれです。私は、ループ、ストリームまたはラムダを使用することができます。最も友人と人の友人のリストを返す方法

マップを実行してからmax(reduce)することができますが、これを行う方法がわかりません。このコンテストでmaxの使用についての「レシピ」/説明を見つけるのに苦労します。

これは私が持っているもので、私が何をしているのか分かりません。私の説明が不明な場合は申し訳ありません。誰か助けてくれますか?

private ArrayList<Person> friends; 

public Person mostConnectedFriend() { 
    int count = 0; 

    for (Person person : friends) { 
     if (friends.size() >= count) { 
      return person; 
     } 
    } 

    return null; 
} 
+0

'リターンfriends.stream()最大(Comparator.comparingIntた(p - > p.getFriends()サイズ()));' – shmosel

+0

https://meta.stackoverflow.com/questions/284236 /なぜか誰かが助けてくれると私は実際の質問 – Raedwald

答えて

0

あなたはどの友人が最も人気があるか知りたいと思います。

友だちのリストがある場合は、最大の友人リストを持つリストが必要です。

あなたが書いた機能はそれをしません。

これはうまくいくでしょう。私はあなたのために何かを残しました。

public Person mostConnectedFriend() { 
    // TODO: This is the function you have to have 
    int maxFriendCount = ?; 
    for (Person friend: friends) { 
     if (friend.getFriends().size() == maxFriendCount) { 
      return friend; 
     } 
    } 
    return null; 
} 
+0

なぜ2つの繰り返しを使うのですか? – shmosel

+0

私はもっと同意できませんでした。あなたのラムダは優れています。私はOPが若く、経験の浅いように見えるので、書き出す方が良いと思った。 – duffymo

+0

lambdaについては忘れて、なぜ単一のループを使用しないのですか? – shmosel

関連する問題