我已经上了 4 门 java 课
Teams.java
Team.java
Players.java
Player.java
我需要能够创建一些球员和球队。并将球员加入球队。我只是对如何将球员添加到球队感到困惑?我应该使用哪个类以及如何添加它们?
public class Teams {
public ArrayList<Team> teams;
public Teams(){ //take no parameters
}
public class Team {
private String name;
private Players players;
public Team(String name){
//takes one parameter, the name, corresponding to the fields identically named. Other fields require no parameters but the constructor methods
}
public class Players {
private ArrayList<Player> Players;
public Players(){ //takes no parameters
}
public class Player {
private String name;
private Double credit;
private String level;
private Integer age;
private String team;
private Integer No;
public Player(String name, Double credit, Integer age, Integer No){
this.name = name;
this.credit = credit;
this.age = age;
this.No = No;
this.level = CalculateLvl(credit);
}
我试过像这样将一些玩家添加到玩家类的玩家列表中
public Players(){ //no parameters
Players.add(new Player("Kevin Hart", 1300.0, 20, 7));
}`
和一些团队到 Teams 类中的 Teams 列表
public Teams(){ //take no parameters
teams.add(new Team("Knicks"));
}
但我不确定我在做什么,或者这是否是正确的方法。 我不知道如何将这些球员与他们各自的球队联系起来。
没有编译器检查的初步尝试。大多数著名的教程都展示了……扩展 ArrayList-Team-
// Seems ok from some sources - public class Teams<Team> extends ArrayList
public class Teams extends ArrayList<Team>{
Team temp;
Players<Player> pls; // extends ArrayList
public Teams(){
pls = new Players<>();
pls.add(new Player("Ruhollah Khomeini",0.0000,17,88));
pls.add(new Player("Margaret Thatcher",0.0000,101,16));
pls.add(new Player("Joe Biden",-0.0000,3,45));
pls.add(new Player("Idi Amin",0.0000,25,44));
temp = new Team(pls);
add(temp);
}//end constuctor
}//end class
我认为这更像是一个设计问题,我们让玩家具有属于玩家的属性。 然后球员被分配到一个团队,我们可以有多个团队。
@vishalpd,请根据您提供的基本信息检查我完成的以下类实现。 另请注意,应添加额外的验证,这只是一个骨架。
我在类中使用了不同的构造函数来以不同的方式实例化对象。
最重要的是,还创建了 java var args 构造函数,以更优雅的方式逐一添加球员和球队。
此外,
List<Team> teams
和 List<Player> players
列表已在团队和玩家类内部使用,以保留每个玩家和团队。
玩家类
public class Player {
public Player(String name, Double credit, String level, Integer age, String team, Integer no) {
this.name = name;
this.credit = credit;
this.level = level;
this.age = age;
this.team = team;
this.no = no;
}
public Player() {
}
private String name;
private Double credit;
private String level;
private Integer age;
private String team;
private Integer no;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getCredit() {
return credit;
}
public void setCredit(Double credit) {
this.credit = credit;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getTeam() {
return team;
}
public void setTeam(String team) {
this.team = team;
}
public Integer getNo() {
return no;
}
public void setNo(Integer no) {
this.no = no;
}
@Override
public String toString() {
return "Player{" +
"name='" + name + '\'' +
", credit=" + credit +
", level='" + level + '\'' +
", age=" + age +
", team='" + team + '\'' +
", no=" + no +
'}';
}
}
选手班
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Players {
private List<Player> players;
public Players(Player... players) {
this.players = new ArrayList<>();
Arrays.stream(players).forEach(player -> this.players.add(player));
}
public Players(List<Player> players) {
this.players = players;
}
public Players() {
this.players = new ArrayList<>();
}
public List<Player> getPlayers() {
return players;
}
public void setPlayers(List<Player> players) {
this.players = players;
}
public void addSinglePlayer(Player player) {
if (player != null) {
this.players.add(player);
}
}
public void addGroupOfPlayers(List<Player> players) {
if (!players.isEmpty()) {
players.forEach(player -> this.players.add(player)); //Java 8 style
}
}
}
团队课
公开课团队{
private int id;
private String name;
private Players players;
public Team( int id, String name, Players players) {
this.id = id;
this.name = name;
this.players = players;
}
public Players getPlayers() {
return players;
}
public void setPlayers(Players players) {
this.players = players;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
团队课
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Teams {
private List<Team> teams;
public Teams(Team... teams) {
this.teams = new ArrayList<>();
Arrays.stream(teams).forEach(team -> this.teams.add(team));
}
public Teams(List<Team> teams) {
this.teams = teams;
}
public Teams() {
this.teams = new ArrayList<>();
}
public List<Team> getTeams() {
return teams;
}
public void setTeams(List<Team> teams) {
this.teams = teams;
}
public void addSingleTeam(Team team) {
if (team != null) {
this.teams.add(team);
}
}
public void addGroupOfTeams(List<Team> teams) {
if (!teams.isEmpty()) {
teams.forEach(team -> this.teams.add(team)); //Java 8 style
}
}
}
用于测试功能的驱动代码主类
import java.util.List;
public class Main {
public static void main(String[] args) {
Player player1 = new Player("jhon", 23.0d, "expert", 34, "super hero", 123);
Player player2 = new Player("Rohan", 22.0d, "beginner", 28, "super hero", 124);
Player player3 = new Player("Arnold", 16.0d, "beginner", 36, "super hero", 125);
Player player4 = new Player("Mary", 18.0d, "beginner", 23, "gladiator", 807);
Player player5 = new Player("Kevin", 21.0d, "beginner", 27, "gladiator", 808);
Player player6 = new Player("Jemmy", 19.0d, "beginner", 33, "gladiator", 809);
Players playersTeam1 = new Players(player1, player2, player3);
Players playersTeam2 = new Players(player4, player5, player6);
Team team1 = new Team(1, "super hero", playersTeam1);
Team team2 = new Team(2, "gladiator", playersTeam2);
Teams teams = new Teams(team1, team2);
//Print Team 1
System.out.println("TEAM 1");
teams.getTeams().stream().filter(team -> team.getId() == 1).forEach(team -> {
team.getPlayers().getPlayers()
.stream()
.forEach(player -> System.out.println(player.toString()));
});
System.out.println();
//Print Team 1
System.out.println("TEAM 2");
teams.getTeams().stream().filter(team -> team.getId() == 2).forEach(team -> {
team.getPlayers().getPlayers()
.stream()
.forEach(player -> System.out.println(player.toString()));
});
}
}
结果输出
TEAM 1
Player{name='jhon', credit=23.0, level='expert', age=34, team='super hero', no=123}
Player{name='Rohan', credit=22.0, level='beginner', age=28, team='super hero', no=124}
Player{name='Arnold', credit=16.0, level='beginner', age=36, team='super hero', no=125}
TEAM 2
Player{name='Mary', credit=18.0, level='beginner', age=23, team='gladiator', no=807}
Player{name='Kevin', credit=21.0, level='beginner', age=27, team='gladiator', no=808}
Player{name='Jemmy', credit=19.0, level='beginner', age=33, team='gladiator', no=809}