Java 数组记录

Java array records

我需要获得一个具有 3 种类型值的变量类型,我知道的唯一方法是 "Records",但我知道 "Records" 中没有这样的类型 Java 但 ArrayList,但我不明白...

我的结果应该是:(不知道它在 Java 中的样子,所以我以不同的风格展示)

TData = Record
     Username : String;
     UserID : Int ;
     RowID : Int;
   end;
users : array[1..10] of TData;

for(int i = 1; i < rowCount; i++){
   TData.Username[i] = rs.GetString("Name");
   TData.UserID[i] = rs.GetInt("UserID");
   TData.RowID[i] = row;
}

关于如何制作这样的东西有什么建议吗? 我真的需要 ArrayList 吗?

感谢您的帮助,最后我结合并得到了这个结果,完美运行:

class MyData {
        private String userName;
        private int userID;
        private int RowID;


        public MyData(String userName, int userID, int RowID) {
            this.userName = userName;
            this.userID = userID;
            this.RowID = RowID;
        }

        public String getUserName() {
            return userName;
        }

        public int getUserID() {
            return userID;
        }
        public int getRowID() {
            return RowID;
        }
    }

    public void AList(){
        ArrayList<MyData> users = new ArrayList<>();
        try{
            conn = DBConnection.DBConnector();
            pst = conn.prepareStatement("SELECT * FROM TableUserData");
            rs = pst.executeQuery();
            row = 0;
            while (rs.next()) {
                users.add(new MyData(rs.getString("User_name"), rs.getInt("ID"), row));
                row++;
                }
            for (MyData tmp : users) {
                JOptionPane.showMessageDialog(null, "Users: " + tmp.getUserName() + " row: " + rtmp.getRowID());

            }

        }catch(Exception e){
            JOptionPane.showMessageDialog(null, "Arraylist error: " + e);
        }

    }

你搞混了。

ArrayList 是数组的灵活替代方案,用于存储 "a bunch" 具有相同类型的数据。

这些数据(一项)的类型由您决定。

在 Java 中执行此操作的标准方法是定义一个 class 如

class MyData {
    private String userName;
    private int userID;
    private int rowID;

    public MyData(String userName, int userID, int rowID) {
        this.userName = userName;
        this.userID = userID;
        this.rowID = rowID;
    }

    public String getUserName() {
        return userName;
    }

    public int getUserID() {
        return userID;
    }

    public int getRowID() {
        return rowID;
    }
}

然后

ArrayList<MyData> users = new ArrayList<>();

while (rs.next()) {
   users.add(new MyData(rs.GetString("Name"), rs.GetInt("UserID"), rs.GetInt("RowID")));
}

考虑以下代码片段 -

int salary;
float bonus;
char YesOrNo = 'Y';  

这里salarybonusYesOrNo都是数据,intfloatchar都是数据类型。我们称salary是一个int类型的数据,bonus是一个float类型的数据。这里 intfloatchar - 这些数据类型是 java 中的原始类型。

除了原始类型之外,您还可以使用 object oriented 编程语言创建自己的数据类型,例如 - java。在这里,我认为您可以创建一个名为 Record 的 class 或其他更有意义的名称 -

public class Record {
    private String userName;
    private int userId; 
    private int rowId;

    public Record(String userName, int userId, int rowId){
      this.userName = userName;
      this.userId = userId;
      this.rowId
    }

    //getter and setter methods  if required
}  

之后当您创建 Record 的 instance/object -

Record aRecord = new Record("user001", 1, 1);

然后在OOP中我们将新创建的class-Record称为用户自定义数据类型。现在我们可以调用 aRecord 作为 Record 类型的数据。

然后就可以用ArrayList来存储Record类型的数据了-

List<Record> recordList = new ArrayList<Recored>();