我想知道检索列表中列表元素的最佳方法。
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,
}
**
答案 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"));
希望这有帮助!