2012-04-08 108 views
12

我想創建一個二維數組,我想從數據庫中存儲記錄。因此,可以說第一個是int類型,第二個是String(這裏我只描述了一條記錄,所以基本上是db列的類型)。我該怎麼做?數組是正確的數據結構嗎?不同類型的二維數組

回答

5

數組只能包含一種類型。如果這種類型碰巧是Object,那麼它可以存儲Object及其任何子類型,但這聽起來並不像你想要在這裏完成的。

聽起來像你所描述的是一個2D數組來存儲數據庫信息,數組中的每個元素都是其中一行中的一列。這不是記錄數組,它是一個列數據數組。

相反,只需存儲一維記錄數組,其中數組的每個元素都是對整個DB行的引用。

+0

我很抱歉,但我不確定你的意思是:「數組中的每個元素都是對整個DB行的引用」。整個DB行由兩列不同類型的字符串和整數組成。我如何將它存儲在一個數組中? – lunar 2012-04-08 14:24:05

+1

你用什麼來訪問數據庫?必須有一個對象表示表中的一行。然後,該行必須具有可調用的方法來訪問該行中的列數據。不管對象包裝數據庫行是你需要存儲在你的數組中。我的意思是,這基本上是一個數據庫表 - 一個行數組。 – jefflunt 2012-04-08 14:26:16

11

我不確定我在追隨,但您可能正在尋找Map<Integer,String>。或Map<Integer,List<String>>。 [對List一看,HashMap]

Map允許值[StringList]鍵[Integer]的關聯。

Map還允許快速查找密鑰及其附加值。

(*)你應該使用Map<Integer,List<String>>如果要附加更多的則每Integer一個String,或者您可以使用Apache公地MultiMap

+1

Map 如果你這個比java不允許記錄重複的Integer。 – 2012-04-08 14:04:10

+0

@yogeshprajapata儘管你可以使用Guava或Apache的'MultiMap'中的一個來實現這個功能。 – Jeffrey 2012-04-08 14:04:58

+0

@Jeffrey,但你在這裏沒有提到你正在談論Gauvas的地圖。 – 2012-04-08 14:10:00

1

您可以使用

HashMap<Integer, ArrayList<String>> 
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]); 
+0

嘿Yogesh,我正在試圖做o [0] = 0的字符串和o [0] [1] =一個字符串相同。這對我不起作用,如果這對我有用? – Tomer 2016-12-03 21:51:07

+0

請發佈您的代碼。 – 2016-12-05 06:22:00

0

如果你只是想有一列字符串dat和int數據的另一列,這是你可以考慮做什麼:

聲明一個二維字符串數組

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

你的第一列可以包含所有的字符串數據。第二列可以具有數字數據但是以字符串的形式。您可能需要使用Integer.toString()和的Integer.parseInt()方法來做到這一點

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

我不知道究竟你希望達到什麼樣的,但你可能要考慮修改這個片段,以滿足您的需求