2014-10-28 42 views
0

我需要存儲不同類型的數據在一個相同的「數組」關聯(或ID)在我的Android應用程序,我想知道是否有辦法創建HashMaps (或等效的動態數組),它有多個內容列。像這樣的例子。動態數組與更多的一列

HashMap<Integer, String, LatLng, Marker> myHashMap = new HashMap<Integer, String, LatLng, Marker>(); 

在此先感謝您的任何想法。

+1

「Map」是將鍵與值相關聯的東西。什麼是「Map 」?我認爲你只是想要一個'Map '即使它看起來真的很糟糕設計 – Dici 2014-10-28 19:46:35

+0

map只是關鍵值pairs.HashMap 沒有多大意義 – Chiseled 2014-10-28 19:50:03

+0

爲了讓更多的認識, d想象一個像MySQL表一樣存儲數據的變量。一個主鍵(例如)和幾個數據。像這樣: | id | message(string)| latitude(double)| longitude(double)| – gotgot1995 2014-10-28 20:09:42

回答

1
private class Row { 
    public Integer i; 
    public String s; 
    public LatLng ll; 

    public Row(Integer i, String s, LatLng ll) { 
     this.i = i; 
     this.s = s; 
     this.ll = ll; 
    } 
} 

List<Row> rows = new ArrayList<Row>(); 

這是半僞代碼,但我覺得你的想法

添加新行到列表中可以

rows.add(new Row(new Integer(1), "a string", new LatLng(51.448495, 5.470877)); 

編輯行可與

完成完成
rowIndex = 3; 
Row row = rows.get(rowIndex); 
row.i = 2; //give a new value 
//etc 

編輯:用實際代碼替換pseude代碼

+1

感謝downvote,請問爲什麼?這與接受upvote的答案沒有什麼不同 - 我也在這裏學習 – 2014-10-28 21:06:31

+0

對不起,我放了一個downvote,它實際上是我所尋找的,因爲DATA對於你的答案是動態的,我將它標記爲解決方案。但是我想知道如何在地圖上添加「行」?使用map.add(object?); – gotgot1995 2014-10-28 21:13:58

+0

是的,我會在一秒內編輯它 – 2014-10-28 21:18:26

1

地圖只是一個鍵和值,HashMap的讓人很沒有意義

的Java不會讓你定義數據結構的這種方式。類型A的集合應僅保存A類或其子類型的實例。

編輯:從您提供的數據看起來好像你想處理數據庫表中的每一行。最合適的數據結構是具有一個類,該類與數據庫表相對應。

當您從結果集中獲取一行時,只需創建該類的一個實例。

Class mysqlTuple 
{ 
    public Integer id; 
    public String message; 
    public LatLng latitude; 
    public Marker longitude; 
} 

mysqlTupe [] mysqlTable = new mysqlTupe []; 
+0

這將是一個解決方案,但我希望不同的對象鏈接到像MySQL表上的相同的ID。 – gotgot1995 2014-10-28 20:05:59

+0

請爲我們提供一個數據示例。這將更容易理解 – Chiseled 2014-10-28 20:07:51

+0

我有一個MySQL表,我的android應用程序通過PHP腳本下載它的內容,該腳本返回JSON語法數據。 我的表格結構就是這樣的:| id | message |緯度|經度| 事情是我想按行處理這個數據(例如,當你做一個MySQL請求,你只想返回鏈接到ID號碼276的消息)。 – gotgot1995 2014-10-28 20:13:24

0

這在很大程度上取決於你想要達到 選擇一項什麼是保持3個不同的地圖:

Map<String, Integer> 
Map<String,Marker> 
Map<String,LatLng> 

另一種選擇是讓一個:

Map<String,Object> 

然而你將不得不'instanceof'來檢查真實類型,這不是最佳實踐。