2013-04-15 110 views
2

我有以下列表:多的ArrayList的快速聚集到一個單一的一個

List<ArrayList> list; 

list.get(i)包含以下值{p_name=set1, number=777002}的ArrayList對象。

我要創建一個

Map<key,value> 

,其中關鍵字包含p_name,和值號碼。

如何做到這一點,因爲在初始列表中可能有數百個條目,並且每個數字可以存在於多個p_name條目中。

更新:這是我目前的解決方案

List<Row> list; //here is my data 

    Map<String,String> map = new TreeMap<String,String>(); 

    for (Row l : list) { 
     if (l.hasValues()) { 
      Map<String, String> values = l.getResult(); // internal method of Row interface that returns a map 
      String key = values.get("number"); 
      map.put(key, values.get("p_name")); 
     } 
    } 

的方法可行,但也許它可以做的更好?

PS:在我的設計中有一個明顯的錯誤。我不知道你是否找到它:)

+0

現在我正在尋找可能的解決方案。最簡單的方法是手動建立列表,但也許有一個更優化的方法。 – luksmir

+0

我會首先嚐試構建該解決方案並查看其運行速度是否足夠快。如果沒有,請展示您的嘗試並要求改進。 – mthmulders

+0

這是我的嘗試。 – luksmir

回答

1

正弦鍵可以有多個值,你正在尋找的是一個MultiMap。 Multimap 或一個簡單的地圖形式

Map<Key,ArrayList<Values>> 

沒有「快」的方式到我這裏來。您仍然需要遍歷所有元素並檢查所有值。

而實際上數百到Java並不是很多

相關問題