javaarraysarraylistdata-structuresrecords

Java array records


I need to get an variable type that has 3 types of values, the only way I know to do that is "Records", but I know there is no such type as "Records" in Java but ArrayList, but I don't get it...

My result should be: (Don't know how it would look in Java, so I'm showing in different style)

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;
}

Any suggestions on how to make something like this? Is ArrayList that I really need?

Thanks for the help, at the end i combined and got this result, works perfectly:

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);
        }

    }

Solution

  • You are mixing up things.

    An ArrayList is a flexible alternative to an array and serves to store "a bunch" of data which have the same type.

    The type of these data (of one entry) is up to you.

    The standard way of doing this in Java is to define a class like

    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;
        }
    }
    

    and then

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