如何在Java中显示数组的所有内容

如何在Java中显示数组的所有内容,java,arrays,Java,Arrays,这是我在这个网站上的第一篇帖子,所以请耐心点:) 我正在学习java,我正在尝试创建一个小程序,它将玩家的名字和出席人数存储在两个数组中。我正在使用JOptionPane作为“用户界面”。当用户要求时,我想显示他们的姓名和各自的出席情况。 这是我的代码(尚未完成): import javax.swing.*; 导入java.text.*; 公共类佩拉达{ 公共静态void main(字符串[]args){ String[]players=新字符串[10]; int[]出席人数=新int[10];

这是我在这个网站上的第一篇帖子,所以请耐心点:) 我正在学习java,我正在尝试创建一个小程序,它将玩家的名字和出席人数存储在两个数组中。我正在使用JOptionPane作为“用户界面”。当用户要求时,我想显示他们的姓名和各自的出席情况。 这是我的代码(尚未完成):

import javax.swing.*;
导入java.text.*;
公共类佩拉达{
公共静态void main(字符串[]args){
String[]players=新字符串[10];
int[]出席人数=新int[10];
int x=0,z=0,control=0,posPlayer=0;
串试验;
while(控制!=4){
control=Integer.parseInt(JOptionPane.showInputDialog(null,“1-添加新玩家\n 2-列表\n 3-增加出席人数\n 4-删除玩家\n 4-退出”,“选择下面的选项”,JOptionPane.INFORMATION_消息));
如果(控制==1){
players[x]=JOptionPane.showInputDialog(空,“新玩家:”,“添加新玩家”,JOptionPane.INFORMATION\u消息);
考勤[x]=Integer.parseInt(JOptionPane.showInputDialog(null,“他到目前为止打了多少场比赛?”,“考勤”,JOptionPane.INFORMATION_MESSAGE));
x++;
}   
否则如果(控制==2)
for(int i=0;i

}而不是有两个数组;一个用于球员,一个用于出勤,通过创建一个
Player
类来封装球员的姓名和出勤情况,使您的代码更加面向对象:

public class Player {
    private final String name;
    private final int attendance;

    public Player(String name, int attendance) {
        this.name = name;
        this.attendance = attendance;
    }

    public String getName() {
        return name;
    }

    public int getAttendance() {
        return attendance;
    }
}
然后创建
Player
对象并将它们存储在
ArrayList
中。除非你知道要添加多少玩家,否则不要使用数组

List<Player> players = new ArrayList<Player>();

if (control == 1) {
     String name = JOptionPane.showInputDialog(null, "New player: ", "Add New Player",
             JOptionPane.INFORMATION_MESSAGE);
     int attendance = Integer.parseInt(JOptionPane.showInputDialog(null,
             "How many matchs have he played so far? ", "Attendance", JOptionPane.INFORMATION_MESSAGE));
     Player player = new Player(name, attendance);
     players.add(player);

} else if (control == 2) {
    for (int i = 0; i < players.size(); i++) {
        Player player = players.get(i);
        JOptionPane.showMessageDialog(null, "Attendance = " + player.getAttendance(), "N: " + i + "- " + player.getName(),
                JOptionPane.WARNING_MESSAGE);
    }                
}
List players=new ArrayList();
如果(控制==1){
String name=JOptionPane.showInputDialog(空,“新玩家:”,“添加新玩家”,
JOptionPane.INFORMATION(信息和消息);
int attention=Integer.parseInt(JOptionPane.showInputDialog(null,
“到目前为止他打了多少场比赛?”,“出勤率”,JOptionPane.INFORMATION_MESSAGE);
玩家=新玩家(姓名、出席人数);
players.add(player);
}否则如果(控制==2){
对于(int i=0;i
您的问题是什么?您的代码已经列出了所有玩家及其出席情况,不是吗?如果您使用的是足够新的Java版本,请查看for-each循环构造:
for(type x:listOfXs){…}
,而不是手动迭代数组并获取每个元素。按照@dogbane的建议,使其更加面向对象,这将使其变得微不足道,并大大减少样板代码造成的混乱。此外,这只是一个建议,但一定要修复缩进(也许还有空格)。如果你一致地缩进(不管缩进的精确程度如何),而不是随意地缩进,代码就会更容易阅读。这是一个很好的解决方案。我花了一段时间才明白,因为我是个初学者。一个关于编写代码的疑问是Player=Player.get(i);正在从Player类创建另一个对象。如果我是对的,为什么你不需要使用新的?感谢一个lo
Player=players.get(我)
players
arraylist返回索引
i
处的播放器。它不创建新对象,而是从列表中检索现有对象。那么,为什么我们需要编写Player(这是一个类),而不仅仅使用Player=Player.get(i)?
List<Player> players = new ArrayList<Player>();

if (control == 1) {
     String name = JOptionPane.showInputDialog(null, "New player: ", "Add New Player",
             JOptionPane.INFORMATION_MESSAGE);
     int attendance = Integer.parseInt(JOptionPane.showInputDialog(null,
             "How many matchs have he played so far? ", "Attendance", JOptionPane.INFORMATION_MESSAGE));
     Player player = new Player(name, attendance);
     players.add(player);

} else if (control == 2) {
    for (int i = 0; i < players.size(); i++) {
        Player player = players.get(i);
        JOptionPane.showMessageDialog(null, "Attendance = " + player.getAttendance(), "N: " + i + "- " + player.getName(),
                JOptionPane.WARNING_MESSAGE);
    }                
}