2011-10-26 34 views
4

我有一個要求,我需要讀取值及其座標,並將它們放入矩陣以便稍後顯示。Java:用於根據座標插入值的矩陣數據類型

所以可以說我下面的:
<name='abc', coordinates='1,3'>
<name='xyz', coordinates='2,1'>
............................. ..

現在我需要把它們放在一個基於座標值的'矩陣集合'中,並以表格的形式顯示(表格中的單元格佔據相應的座標槽)。

是否有一個集合/方式在java中做到這一點?請注意,我不需要揮杆或任何圖形庫技術。我只需要一個數據結構就可以做到這一點。

謝謝
BC

+0

沒有默認情況下,爲什麼不使用數組數組? –

回答

4

你可以從番石榴使用Table class

+0

驚人的這似乎做了這項工作! – BoCode

+0

你是如何使用這個類來實現你的結果的?我不明白它是如何將你的座標分成兩個整數的。在最近的答案中已定期推薦番石榴,它對我感興趣。 –

+1

將Table聲明爲Table ,您可以將索引視爲座標。 –

1

如果你事先知道你的網格的邊界,你可以使用一個2維數組:

int[][] matrix = new int [n][n]; 

如果你不這樣做,仿效這一方法是用列表的列表:

ArrayList <ArrayList<Integer> > matrix = new ArrayList <ArrayList <Integer> >(); 
1

什麼都不會自動爲你做AFAIK。您需要從提取數據開始。根據提供給您的方式,您可以使用正則表達式或一些專用解析器(如果它是XML,則Java中有廣泛的工具選擇)。

接下來,您將需要拆分該座標字符串。檢查類Stringmethod split

最後,那些座標需要變成整數。請檢查類別Integermethod parseInt

使用這些現在的數字座標,您可以將該值插入到數組中。如果事先知道最大座標,則可以立即創建該數組。如果座標可以是無邊界的任何值,則需要一些動態結構或定期製作一個更大的數組並複製舊內容。