2016-07-26 55 views
1

我想知道檢索列表中列表元素的最佳方法。Java:檢索列表中的值的最佳方法

  List<Object> totalsList = new ArrayList<Object>();  
      Map<String, Object> grandTotalsMap = new HashMap<String, Object>();    
      List<Map<String, String>> items = new ArrayList<Map<String, String>>(); 

      Map<String, String> lineItemsMap1 = new HashMap<String, String>();  
      lineItemsMap1.put("amount", "$70.00"); 
      lineItemsMap1.put("period", "Monthly"); 

      Map<String, String> lineItemsMap2 = new HashMap<String, String>();  
      lineItemsMap2.put("amount", "$55.00"); 
      lineItemsMap2.put("period", "Bi-Monthly"); 

      items.add(lineItemsMap1); 
      items.add(lineItemsMap2); 

      grandTotalsMap.put("section" , "total per pay period amounts"); 
      grandTotalsMap.put("title", "You'r amount"); 
      grandTotalsMap.put("lineItems", items);  

** //我期待輸出:我想創建一個新的地圖,並把類似下面的鍵值:

{ 
    amount: $70.00, 
    period: Monthly, 
    }, 

    { 
    amount: $55.00, 
    period: Bi-Monthly, 

    } 

**

+0

你可以在'lambda'中使用'lambda' – emotionlessbananas

+0

'ArrayLists'有一個'arrayListObject.get(int index)'方法,可以用來獲取列表中的各個元素。 –

回答

0

你的情況,使用items.get(int index)將返回一個HashMap,該HashMap對應於存儲地圖的數組中的位置。例如,items.get(0)會返回您添加的第一張地圖(lineItemsMap1),而items.get(1)會返回您添加的第二張地圖(lineItemsMap2)。

一旦您找到了正確的地圖,您就可以致電HashMap.get(String columnName)來檢索您存儲的值。是訪問存儲在您的ArrayList中的信息

兩種不同的方式如下:

HashMap<String, String> map = items.get(0); 
String amount = map.get("amount"); // This will return '$70.00' 
String period = map.get("period"); // This will return 'Monthly' 

OR

String amount = items.get(0).get("amount"); // Returning '$70.00' 
String period = items.get(0).get("period"); // Returning 'Monthly' 

如果您正在尋找創建這些值的新地圖,您可以將它們存儲在局部變量中(如上所述),然後在創建它時將這些變量添加到映射中:

HashMap<String, String> newMap = new HashMap<String, String>(); newMap.put("newAmount", amount);

或者,你可以通過創建地圖時直接訪問ArrayList中添加值:

newMap.put("newAmount", items.get(0).get("amount")); 

希望這有助於!

相關問題