Java:在List中检索值的最佳方法

时间:2016-07-26 16:37:32

标签: java arraylist collections hashmap

我想知道检索列表中列表元素的最佳方法。

            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);     

**   //我希望输出为:我想创建一个新的Map并输入如下的键值:

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

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

    }

**

1 个答案:

答案 0 :(得分:0)

在您的情况下,使用items.get(int index)将返回与存储地图的数组中的位置对应的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"));

希望这有帮助!