我想创建一个二维数组,我想在其中存储数据库中的记录。所以假设第一个是类型int
,第二个类型是String
(这里我只描述了一个记录,所以基本上是db列的类型)。我该怎么做?数组是否是正确的数据结构?
答案 0 :(得分:13)
我不确定我是否关注,但您可能正在寻找Map<Integer,String>
。或Map<Integer,List<String>>
。 [查看List和HashMap]
Map
允许将密钥[Integer
]与值[String
或List
]相关联。
Map
还允许快速查找密钥及其附加值。
(*)如果您希望每Map<Integer,List<String>>
个附加String
个Integer
,或者您可以使用apache commons MultiMap
答案 1 :(得分:6)
你可以在这个
的帮助下做同样的事情Object[][] o = new Object[10][10];
o[0][0] = 1;
o[0][1] ="hello";
System.out.println(o[0][0]);
System.out.println(o[0][1]);
答案 2 :(得分:5)
数组只能包含一种类型。如果该类型恰好是Object
,那么它可以存储Object
及其任何子类型,但这听起来并不像您在此处尝试完成的那样。
听起来你所描述的是用于存储数据库信息的2D数组,数组中的每个元素都是其中一行中的一列。这个不是一个记录数组,它是一个列数据数组。
相反,只需存储一维记录数组,其中数组的每个元素都是对整个数据库行的引用。
答案 3 :(得分:2)
您可以使用
HashMap<Integer, ArrayList<String>>
答案 4 :(得分:0)
如果您只想拥有一列String数据和另一列int数据,那么您可以考虑这样做:
声明一个二维字符串数组
String[][] words = new String[][];
您的第一列可以包含所有字符串数据。第二列可以具有数字数据,但是以String的形式。您可能希望使用Integer.toString()和Integer.parseInt()方法来执行此操作
words[index][index] = Integer.toString(Integer.parseInt(args));
我不确定您希望实现的目标,但您可以考虑修改此代码段以满足您的需求