代码之家  ›  专栏  ›  技术社区  ›  Mr.Pengu

Java阵列记录

  •  5
  • Mr.Pengu  · 技术社区  · 10 年前

    我需要获得一个具有3种类型值的变量类型,我知道唯一的方法是“Records”,但我知道在Java中没有“Records”这样的类型,但是 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;
    }
    

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

    感谢您的帮助,最后我结合并得到了这个结果,效果非常好:

    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);
            }
    
        }
    
    2 回复  |  直到 6 年前
        1
  •  8
  •   glglgl John Dvorak    10 年前

    你把事情搞混了。

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

    然后

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

    考虑以下代码段-

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

    在这里 salary , bonus YesOrNo 所有这些都是数据 int , float char 是数据类型。我们打过电话 薪水 是一个 整数 类型数据, 奖金 是一个 浮动 类型数据。在这里 整数 , 浮动 , 烧焦 -这些数据类型是 java .

    除了基元类型之外,您还可以在 object oriented 类似编程语言- Java语言 。在这里,我认为您可以创建一个名为 Record 或者用其他更有意义的名字-

    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 aRecord = new Record("user001", 1, 1);
    

    然后在 OOP 我们调用了新创建的类- 记录 作为用户定义的数据类型。现在我们可以打电话了 aRecord 作为一个 记录 类型数据。

    然后你可以使用 ArrayList 存储 记录 类型数据-

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