不同类型的二维数组

时间:2012-04-08 13:59:20

标签: java data-structures

我想创建一个二维数组,我想在其中存储数据库中的记录。所以假设第一个是类型int,第二个类型是String(这里我只描述了一个记录,所以基本上是db列的类型)。我该怎么做?数组是否是正确的数据结构?

5 个答案:

答案 0 :(得分:13)

我不确定我是否关注,但您可能正在寻找Map<Integer,String>。或Map<Integer,List<String>>。 [查看ListHashMap]

Map允许将密钥[Integer]与值[StringList]相关联。

Map还允许快速查找密钥及其附加值。

(*)如果您希望每Map<Integer,List<String>>个附加StringInteger,或者您可以使用apache commons MultiMap

,则应使用{{1}}

答案 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));

我不确定您希望实现的目标,但您可以考虑修改此代码段以满足您的需求