15

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

4

5 回答 5

14

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

Map允许将键 [ Integer] 关联到值 [StringList]。

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

(*)Map<Integer,List<String>>如果你想附加一个String以上,你应该使用Integer,或者你可以使用 apache commonsMultiMap

于 2012-04-08T14:03:02.160 回答
6

数组只能包含一种类型。如果该类型恰好是,Object那么它可以存储Object及其任何子类型,但这听起来不像您在这里想要完成的。

听起来您所描述的是一个用于存储数据库信息的二维数组,数组中的每个元素都是其中一行中的一列。这不是记录数组,而是列数据数组。

相反,只需存储一维记录数组,其中数组的每个元素都是对整个 DB 行的引用。

于 2012-04-08T14:02:04.470 回答
5

你可以在这个的帮助下做同样的事情

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]);
于 2012-04-08T14:08:41.410 回答
3

您可以使用

HashMap<Integer, ArrayList<String>>
于 2012-04-08T14:03:14.483 回答
0

如果您只想拥有一列 String 数据和另一列 int 数据,您可以考虑这样做:

声明一个二维字符串数组

String[][] words = new String[][];

您的第一列可以包含所有字符串数据。第二列可以包含数字数据,但采用字符串的形式。您可能需要使用 Integer.toString() 和 Integer.parseInt() 方法来执行此操作

words[index][index] = Integer.toString(Integer.parseInt(args));

我不确定您究竟希望达到什么目标,但您可以考虑修改此代码段以满足您的需求

于 2014-11-16T06:22:57.827 回答