[英]How Can I see all of the elements stored in my ArrayList?
I am trying to store a list of created players to an array list.我正在尝试将创建的玩家列表存储到数组列表中。 I have two questions.
我有两个问题。
If you guys have ANY feedback or tips for me that would be amazing(Could I be using a different data structure or list or would something like a map be better for this) Kind of a novice at this.如果你们对我有任何反馈或提示,那将是惊人的(我可以使用不同的数据结构或列表,或者像地图之类的东西更适合这个)这方面的新手。 Happy new year
新年快乐
Thanks in advance提前致谢
package p;
import java.util.ArrayList;
import java.util.Scanner;
public class PlayerData {
private String name = "";
private String age = "";
private String player_id = "";
private String agent_id = "";
private double valuation;
private String status;
private String position;
public PlayerData(String n, String a, String id, String aid, Double val, String sts, String pos) {
name = n;
age = a;
player_id = id;
agent_id = aid;
valuation = val;
status = sts;
position = pos;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getPlayer_id() {
return player_id;
}
public void setPlayer_id(String player_id) {
this.player_id = player_id;
}
public String getAgent_id() {
return agent_id;
}
public void setAgent_id(String agent_id) {
this.agent_id = agent_id;
}
public double getValuation() {
return valuation;
}
public void setValuation(double valuation) {
this.valuation = valuation;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public void printData() {
// System.out.println("Name\tAge\tPlayer Id\t Agent Id\tValuation\t Status\t
// position");
System.out.println(name + "\n" + age + "\n" + player_id + "\n" + agent_id + "\n" + valuation + "\n" + status
+ "\n" + position);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Plz enter Name : ");
String name = input.nextLine();
System.out.println("Plz enter age : ");
String age = input.nextLine();
System.out.println("Plz enter Player_id : ");
String player_id = input.nextLine();
System.out.println("Plz enter agent_id : ");
String agent_id = input.nextLine();
System.out.println("Plz enter status : ");
String status = input.nextLine();
System.out.println("Plz enter position : ");
String position = input.nextLine();
System.out.println("Plz enter valuation : ");
Double valuation = input.nextDouble();
ArrayList<PlayerData> Player = new ArrayList<PlayerData>();
Player.add(new PlayerData(name, age, player_id, agent_id, valuation, status, position));
System.out.println("\nPlayer Details entered: ");
for (int i = 0; i < Player.size(); i++) {
System.out.println(Player.get(i).getName());
System.out.println(Player.get(i).getAge());
System.out.println(Player.get(i).getPlayer_id());
System.out.println(Player.get(i).getAgent_id());
System.out.println(Player.get(i).getValuation());
System.out.println(Player.get(i).getStatus());
System.out.println(Player.get(i).getPosition());
System.out.println(Player.iterator());
}
System.out.println(Player.toArray().toString());
}
}
1 From looking at my code, Is my list being overwritten each time I add a new player?
1 从查看我的代码来看,每次添加新玩家时我的列表是否都会被覆盖?
You only add one PlayerData
object to the ArrayList
.您只需将一个
PlayerData
对象添加到ArrayList
。
How do I see all of the players that have been stored in this arrayList?
如何查看已存储在此 arrayList 中的所有播放器?
You already do, you only have one player in the ArrayList, example with foreach:您已经这样做了,您在 ArrayList 中只有一个玩家,例如 foreach:
List<PlayerData> players = new ArrayList<PlayerData>();
System.out.println("\nPlayer Details entered: ");
for (PlayerData player: players) {
System.out.println(player.getName());
System.out.println(player.getAge());
System.out.println(player.getPlayer_id());
System.out.println(player.getAgent_id());
System.out.println(player.getValuation());
System.out.println(player.getStatus());
System.out.println(player.getPosition());
}
The problem is that you're adding just one player.问题是您只添加了一名球员。 If you would like to add multiple players you should do it inside a while loop.
如果你想添加多个玩家,你应该在一个 while 循环中进行。 Then you are able to add multiple records into your arrayList.
然后您就可以将多条记录添加到您的arrayList 中。 But you need to remember that you need a condition to exit this while loop.
但是你需要记住,你需要一个条件来退出这个 while 循环。
public class Main {
public static final Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
Player player = null;
List<Player> players = new ArrayList<>();
while (true) {
System.out.println("Please enter player id: ");
String id = sc.nextLine();
System.out.println("Please enter player name: ");
String name = sc.nextLine();
player = new Player(id, name);
players.add(player);
if (players.size() == 2) break;
}
System.out.println(players);
}
public static class Player {
private String _id;
private String _name;
public Player(String id, String name) {
_id = id;
_name = name;
}
@Override
public String toString() {
return "Player{" +
"_id='" + _id + '\'' +
", _name='" + _name + '\'' +
'}';
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.