Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 lambda复制具有不同键类型的映射_Java_Lambda_Java 8 - Fatal编程技术网

Java lambda复制具有不同键类型的映射

Java lambda复制具有不同键类型的映射,java,lambda,java-8,Java,Lambda,Java 8,我们有一个Map,需要将其转换为Map。 这里的String是存储为String的日期 {"1999-11-07T18:30:00.000+0000":{"property1":"value1","property2":valuep1}, {"1998-11-07T18:30:00.000+0000":{"property1":"value2","property2":valuep2} 使用lambda和streams有什么简单或直接的方法吗?我们正在使用java8和jacksonapi yo

我们有一个
Map
,需要将其转换为
Map
。 这里的String是存储为String的日期

{"1999-11-07T18:30:00.000+0000":{"property1":"value1","property2":valuep1},
{"1998-11-07T18:30:00.000+0000":{"property1":"value2","property2":valuep2}
使用lambda和streams有什么简单或直接的方法吗?我们正在使用java8和jacksonapi

yourMap.entrySet().stream()
                        .collect(Collectors.toMap(
                                this::parseDate,
                                Map.Entry::getValue
                        ));
创建一个将字符串解析为日期的方法

private Date parseDate(Map.Entry<String, Object> e) {
        try {
            return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse(e.getKey());
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
        return some date;
    }
私有日期解析日期(Map.Entry e){
试一试{
返回新的SimpleDataFormat(“yyyy-MM-dd'HH:MM:ss.SSSZ”).parse(e.getKey());
}捕获(解析异常){
例如printStackTrace();
}
返回某个日期;
}

我建议您不要使用
Date
并根据需要使用
LocalDate
LocalDateTime
。大多数日期方法都已弃用。格式字符串应为
yyyy-MM-dd'T'HH:MM:ss.SSSZ
,而
Map.Entry
应为
而非