玩家对象数量超过30

时间:2015-06-14 01:44:33

标签: java arrays

假设我有一个玩家阵列列表,我希望得到30岁以上的所有玩家。玩家有通常的属性,如姓名和年龄,以及getName和getAge方法。我是Java的新手,所以对此有任何帮助深表感谢。感谢。

for(player p:players){if(p.getAge()> 30){System.out.println(p.getName()); }}

2 个答案:

答案 0 :(得分:1)

以下是适合您的解决方案。 假设:你有一个类玩家,可以读取所有玩家并将其添加到allPlayers arraylist中。

import java.util.*;

public class game
{
    //holds a list of all players.
    ArrayList<Player> allPlayers = new ArrayList<Player>();
    //holds a list of players older than 30 years.
    ArrayList<Player> olderThan30 = new ArrayList<Player>();

    public game()
    {
        //read players list and fill in the above arraylist with all players you have.
        //for example, allPlayers = getAllPlayers(); You can also use IO methods to read external files.
        //get all players that is older than 30 years of age by calling a method get30OlderPlayers().
        olderThan30 = get30OlderPlayers();
    }

    private ArrayList<Player> get30OlderPlayers()
    {
        //an arraylist that will save the player list to return.
        ArrayList<Player> olderThan30 = new ArrayList<Player>();

        //loops through all players one by one.
        for (Player p : allPlayers)
        {
            //if the player's age is more than 30....
            if(p.getAge() > 30)
            {
                //...add it to the arraylist olderThan30.
                olderThan30.add(p);
            }
        }
        //at the end return the arraylist that holds the players older than 30.
        return olderThan30;
    }
}
祝你好运。

答案 1 :(得分:0)

如果您使用的是Java 8,则可以执行以下操作:

public List<Player> getAllOlderThan(int age) {
    return players.stream().filter(p -> p.getAge() > age).collect(Collectors.toList());
}