Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8按键将列表映射到列表的映射_Java_Java 8_Java Stream - Fatal编程技术网

Java 8按键将列表映射到列表的映射

Java 8按键将列表映射到列表的映射,java,java-8,java-stream,Java,Java 8,Java Stream,我有以下Java代码: List<BaseQuery> queries; Map<Long, List<BaseQuery>> map = new HashMap<>(); for (BaseQuery query : queries) { List<BaseQuery> queryList = map.get(query.getCharacteristicId()); if(queryList == null) {

我有以下Java代码:

List<BaseQuery> queries; 

Map<Long, List<BaseQuery>> map = new HashMap<>();
for (BaseQuery query : queries) {
    List<BaseQuery> queryList = map.get(query.getCharacteristicId());
    if(queryList == null) {
        queryList = new ArrayList<>();
        map.put(query.getCharacteristicId(), queryList);
    }
    queryList.add(query);
}
列表查询;
Map Map=newhashmap();
for(BaseQuery查询:查询){
List queryList=map.get(query.getCharacteristicId());
if(queryList==null){
queryList=newarraylist();
put(query.getCharacteristicId(),queryList);
}
添加(查询);
}

您能演示如何将其转换为Java 8和streams吗?

它非常简单,只需
groupingBy

queries.stream()
       .collect(Collectors.groupingBy(BaseQuery::getCharacteristicId));
这将创建一个
列表
作为值,它隐式地是:

queries.stream()
       .collect(Collectors.groupingBy(
            BaseQuery::getCharacteristicId,
            Collectors.toList()));
但是如果您想要一个可变的
列表的保证:

queries.stream()
       .collect(Collectors.groupingBy(
            BaseQuery::getCharacteristicId,
            Collectors.toCollection(ArrayList::new)));

在Java8中,您可以按照@Eugene的答案进行操作。在java 7中,您可以使用org.apache.commons.collections.CollectionUtils如下所示:

List<String> idList = (List<String>) CollectionUtils.collect(objectList, 
                                new BeanToPropertyValueTransformer("id"));
List idList=(List)CollectionUtils.collect(objectList,
新BeanPropertyValueTransformer(“id”);

Hey:)您尝试过什么吗?
Map=querys.stream().collect(collector.groupby(BaseQuery::getCharacteristicd))你可以删除你自己的问题顺便说一句…你到底为什么要这样编辑它?让它保持打开状态有什么问题?那么将其恢复为原始形式有什么问题?这个问题是否会从你们的个人资料中删除的决定和它现在的样子并没有多大关系。你介意把它转回到包含真实问题的版本吗?