【发布时间】:2015-04-20 20:36:13
【问题描述】:
我需要获得一个具有 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;
}
关于如何制作这样的东西有什么建议吗?
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);
}
}
【问题讨论】:
-
您可以创建自己的
Record类并为其提供这些字段。 -
在 Java 中使用类而不是记录。 Java 有数组,这与 Pascal 中的相同。 ArrayList是一个List,它使用Array来存储项目,它本身不是数组(但是通常最好使用它,因为你不必设置它的大小,它会自动调整大小)
-
@glglgl OP 说 不知道它在 java 中的样子所以,我以不同的风格展示 你怎么能改变他的 pseudo-代码到你的?当然还有更重要的事情需要编辑。
-
@johnchen902 这个伪代码显然是受 Pascal 启发的,即使它不会,也没有必要访问该类型的字段,所以我改变了它,注意我不要' t改变所有人的意图。如果您发现其他值得更改的地方,请随时更改。
标签: java arrays arraylist data-structures records