转换列表<;E>;映射<;字符串,列表<;字符串>&燃气轮机;使用Java8流

转换列表<;E>;映射<;字符串,列表<;字符串>&燃气轮机;使用Java8流,java,java-8,java-stream,Java,Java 8,Java Stream,我正在寻找一些将对象列表转换为地图的帮助 我有一个列表,我想收集地图,关键是年龄,价值是相同年龄的人的名字列表 我试过这样做,但没有成功 persons.stream().collect(Collectors.groupingBy(p -> p.getAge()), ); 使用接受下游收集器的此重载: Map<Integer, List<String>> map = persons.stream() .collect(Collectors.grou

我正在寻找一些将对象列表转换为
地图的帮助

我有一个
列表
,我想收集
地图
,关键是年龄,价值是相同年龄的人的名字列表

我试过这样做,但没有成功

persons.stream().collect(Collectors.groupingBy(p -> p.getAge()), );
使用接受下游收集器的此重载:

Map<Integer, List<String>> map = persons.stream()
        .collect(Collectors.groupingBy(Person::getAge,
                Collectors.mapping(Person::getName, Collectors.toList())));
Map Map=persons.stream()
.collect(收集器).groupingBy(个人::getAge,
Collectors.mapping(Person::getName,Collectors.toList());

如果这是为了实现快速查找,您是否考虑过使用索引集合(如数据存储):

您可以执行以下操作:

Store<Person> store = new MemoryStore<Person>();
store.index("name", Person::getName);
store.addAll(listOfPeople); // populate your store with data
Person personFound = person.get("name", "bob");
Store Store=newmemorystore();
store.index(“name”,Person::getName);
store.addAll(人员列表);//用数据填充您的存储
Person-personFound=Person.get(“name”,“bob”);
您可以在同一数据上创建多个索引。您甚至可以创建不区分大小写的索引等

Store<Person> store = new MemoryStore<Person>();
store.index("name", Person::getName);
store.addAll(listOfPeople); // populate your store with data
Person personFound = person.get("name", "bob");