1. 概述
在本教程中,我们将讨论如何在Java中将HashMap存储在List中。首先,我们将对Java中的HashMap和List数据结构做一个简短的解释。然后,我们将编写一个简单的代码来解决这个问题。
2. Java中的HashMap和List
Java为我们提供了具有各种属性和特性的不同数据结构来存储对象。其中,HashMap是将唯一键映射到值的键值对集合。此外,List包含一系列相同类型的对象。
我们可以在这些数据结构中放置简单值或复杂对象。
3. 将HashMap<String, ArrayList<String>>存储在List中
让我们举一个简单的例子,我们在其中创建一个HashMap列表。对于每个书籍类别,都有一个HashMap将书名映射到其作者。
首先,我们定义javaBookAuthorsMap,它将Java相关书籍的名称映射到它的作者列表:
HashMap<String, List<String>> javaBooksAuthorsMap = new HashMap<>();
此外,我们定义phpBooksAuthorsMap来保存PHP类别的书籍的名称和作者:
HashMap<String, List<String>> phpBooksAuthorsMap = new HashMap<>();
然后,我们定义booksAuthorsMapsList来保存不同类别的HashMap:
List<HashMap<String, List<String>>> booksAuthorsMapsList = new ArrayList<>();
现在,我们有一个包含两个HashMap的列表。
为了测试它,我们可以将一些书籍信息放在javaBookAuthorsMap和phpBooksAuthorsMap列表中。然后,我们将它们添加到booksAuthorsMapsList。最后,我们确保将HashMap添加到列表中。
让我们看看下面的单元测试:
@Test
public void givenMaps_whenAddToList_thenListContainsMaps() {
HashMap<String, List<String>> javaBooksAuthorsMap = new HashMap<>();
HashMap<String, List<String>> phpBooksAuthorsMap = new HashMap<>();
javaBooksAuthorsMap.put("Head First Java", Arrays.asList("Kathy Sierra", "Bert Bates"));
javaBooksAuthorsMap.put("Effective Java", Arrays.asList("Joshua Bloch"));
javaBooksAuthorsMap.put("OCAJavaSE 8", Arrays.asList("Kathy Sierra", "Bert Bates", "Elisabeth Robson"));
phpBooksAuthorsMap.put("The Joy of PHP", Arrays.asList("Alan Forbes"));
phpBooksAuthorsMap.put("Head First PHP & MySQL",
Arrays.asList("Lynn Beighley", "Michael Morrison"));
booksAuthorsMapsList.add(javaBooksAuthorsMap);
booksAuthorsMapsList.add(phpBooksAuthorsMap);
assertTrue(booksAuthorsMapsList.get(0).keySet()
.containsAll(javaBooksAuthorsMap.keySet().stream().collect(Collectors.toList())));
assertTrue(booksAuthorsMapsList.get(1).keySet()
.containsAll(phpBooksAuthorsMap.keySet().stream().collect(Collectors.toList())));
}
4. 总结
在本文中,我们讨论了在Java中将HashMap存储在List中。然后,我们编写了一个简单的示例,其中我们将HashMap<String, ArrayList<String>>添加到两个书籍类别的List<String>中。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章