我的foreach循环不起作用

时间:2017-10-07 19:00:26

标签: java

此方法应该返回对象最受欢迎的朋友。我虽然这个循环会在arraylist中添加一个getFriend().size() > 0的对象。然后它会将下一个对象getFriend().size()与ArrayList中的对象进行比较。该对象将被添加到ArrayList,而另一个对象将被删除,如果它有更多的朋友。

// Class variables

// the person's name
private String name;
// a list of this person's friends
private ArrayList<Person> friends; 

public Person mostConnectedFriend(){
    for(Person f : friends){
        ArrayList<Integer> mostFriends = new ArrayList<>(); 
        int amountOfFriends = 0;
        if(getFriends().size() > amountOfFriends){
            mostFriends.remove(amountOfFriends);
            mostFriends.add(amountOfFriends);
        }
    } return null;
}    

1 个答案:

答案 0 :(得分:3)

假设您展示的代码位于Person课程内,并且您正试图找出this个朋友中哪些朋友拥有最多的自己朋友,那么这可能有用:

public Person mostConnectedFriend() {
    int highestFriendCount = 0;
    Person friendWithHighestFriendCount = null;
    for (Person friend : friends) {
        int friendCount = friend.friends.size();
        if (friendCount > highestFriendcount) {
            highestFriendCount = friendCount;
            friendWithHighestFriendCount = friend;
        }
    }
    return friendWithHighestFriendCount;
}

这遍历了this人的每个朋友,并且每次发现朋友的朋友数量高于目前为止检查的其他朋友时,它会替换计数并跟踪当前的朋友。在循环结束时friendWithHighestFriendCount将保留最好的朋友,highestFriendCount将保留他们拥有的朋友数量。