当前位置: 首页 > 面试题库 >

将值添加到列表中Map中已存在的键

梁浩
2023-03-14
问题内容

晚间!

我有以下地图:

HashMap<String, ArrayList> myMap = new HashMap<String, ArrayList>();

然后,我向其中添加了以下数据:

ArrayList myList = new ArrayList();
myList.add("Test 1");
myList.add("Test 2");
myList.add("Test 3");
myMap.put("Tests", myList);

这给我留下了以下数据

关键: 测试

值: 测试1,测试2,测试3

我的问题是,如何将新值添加到我现有的键上?因此,例如,如何将值“ Test 4”添加到键“ Tests”上。

谢谢。


问题答案:

只需从地图上获取列表,然后将元素添加到列表中即可:

ArrayList list = myMap.get("Tests");
list.add("Test4");

关于您的代码,还有一些其他事项需要注意。首先,不要使用raw类型 ArrayList。使用泛型:

HashMap<String, ArrayList<String>> myMap = new HashMap<String, ArrayList<String>>();

ArrayList<String> myList = new ArrayList<String>();
myList.add("Test 1");
myList.add("Test 2");
myList.add("Test 3");
myMap.put("Tests", myList);

其次,编写接口程序,而不是实现程序。换句话说,程序使用接口MapList,而不是实施方式HashMapArrayList。这是众所周知的OO编程原理,例如,如果有必要,例如,它可以更轻松地切换到其他实现。

Map<String, List<String>> myMap = new HashMap<String, List<String>>();

List<String> myList = new ArrayList<String>();
myList.add("Test 1");
myList.add("Test 2");
myList.add("Test 3");
myMap.put("Tests", myList);

最后,提供语法提示:如果您使用的是Java 7或更高版本,则可以使用,<>而不必重复类型参数:

Map<String, List<String>> myMap = new HashMap<>();

List<String> myList = new ArrayList<>();
myList.add("Test 1");
myList.add("Test 2");
myList.add("Test 3");
myMap.put("Tests", myList);

myMap.get("Tests").add("Test 4");


 类似资料: