繁体   English   中英

如何查看存储在 ArrayList 中的所有元素?

[英]How Can I see all of the elements stored in my ArrayList?

我正在尝试将创建的玩家列表存储到数组列表中。 我有两个问题。

  1. 通过查看我的代码,每次添加新玩家时我的列表是否都会被覆盖?
  2. 如何查看已存储在此 arrayList 中的所有播放器?

如果你们对我有任何反馈或提示,那将是惊人的(我可以使用不同的数据结构或列表,或者像地图之类的东西更适合这个)这方面的新手。 新年快乐

提前致谢

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 从查看我的代码来看,每次添加新玩家时我的列表是否都会被覆盖?

您只需将一个PlayerData对象添加到ArrayList

如何查看已存储在此 arrayList 中的所有播放器?

您已经这样做了,您在 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());
    }

问题是您只添加了一名球员。 如果你想添加多个玩家,你应该在一个 while 循环中进行。 然后您就可以将多条记录添加到您的arrayList 中。 但是你需要记住,你需要一个条件来退出这个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM