假设我有一个玩家阵列列表,我希望得到30岁以上的所有玩家。玩家有通常的属性,如姓名和年龄,以及getName和getAge方法。我是Java的新手,所以对此有任何帮助深表感谢。感谢。
for(player p:players){if(p.getAge()> 30){System.out.println(p.getName()); }}
答案 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());
}