Java数组记录

qae*_*osh 5 java arrays records arraylist data-structures

我需要得到一个具有3种类型值的变量类型,我知道这样做的唯一方法是"记录",但我知道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;
}
Run Code Online (Sandbox Code Playgroud)

关于如何制作这样的东西的任何建议?是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);
        }

    }
Run Code Online (Sandbox Code Playgroud)

glg*_*lgl 7

你在混淆东西.

An ArrayList是数组的灵活替代品,用于存储具有相同类型的"一堆"数据.

这些数据的类型(一个条目)取决于您.

在Java中执行此操作的标准方法是定义类

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后

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

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