我有一个查询我有这样的地图
Map ab = new HashMap<String, List<String>>();
它包含像这样的值
1 22 23 24 25
所以1是键,值是22,23,24,25
现在我想改变结构
像这样 1 22 23 24 25 | M
如上图所示在列表中除了22,23,24,25我想存储管道| M还请指教如何实现这个
答案 0 :(得分:1)
您只能使用((List<String>)ab.get("1")).add("|M")
编辑:修改,因为它是<Object, Object>
的原始地图。请注意,这是一个未经检查的演员。当您知道Map
将包含哪些内容时,您不应该使用原始类型。避免未经检查的强制转换的另一种方法是使用instanceof
运算符。
答案 1 :(得分:0)
试试这个
Map ab = new HashMap<String, List<String>>();
ab.put("1", "22 23 24 25");
Iterator it = ab.entrySet().iterator();
if (ab.containsKey("1")) {
String value = (String) ab.get("1");
value += "| M";
ab.put("1", value);
}
System.out.println(ab.get("1"));
答案 2 :(得分:0)
所以,基于Swapnil的回答:
Map<String,List<String>> ab = new HashMap<String, List<String>>();
List<String> valueList = ab.get("1");
if (valueList == null) {
valueList = new ArrayList<String>();
ab.put("1",valueList);
}
valueList.add ("|M");
答案 3 :(得分:-1)
使用值创建一个新列表,并使用相同的键将其放在地图上,它将被替换。