我有如下所示的电影实体。我需要根据电影代码对所有实体进行分组,实现如下。现在我需要按扫描日期时间按降序{latest first}对哈希映射的值进行排序。我可以在按流程分组时执行此操作。这里的关键是电影实体的列表。
// Movie Entity Model Class
public MovieEntity {
String movieCode;
OffsetDateTime scanDateTime;
String id;
}
// Fetch all movies from other data source.
List<MovieEntity> movieEntities = fetchMovies();
// Convert fetched data by grouping-by movie code
Map<String, List<MovieEntity>> movieResponseEntityMap =
movieEntities
.stream()
.collect(Collectors.groupingBy(MovieEntity::getMovieCode));
您应该使用日期类型的scanDateTime与实现可比。
Map<String, List<MovieEntity>> movieResponseEntityMap =
movieEntities
.stream()
.sorted((x,y) -> x.getScanDateTime.compareTo(y.getScanDateTime()))
.collect(Collectors.groupingBy(MovieEntity::getMovieCode));
我有map,我想有一个列表,它按键的对应值排序(最小到最大)。我的尝试是:
假设我有一个哈希数据结构,构造如下: 在这种情况下,如何按值从最大到最小对键进行排序?然后我想打印出最高的两个。这是一个大致的想法,但我知道这是错误的: 我想要打印代码(空格以制表符分隔):
问题内容: 我有地图,我想要一个列表,其中按其对应的值对键(最小到最大)进行了排序。我的尝试是: 但这只是给我一个条目列表,如何在不丢失顺序的情况下获得类型列表? 问题答案: 您说要按值排序,但是您的代码中没有。传递一个lambda(或方法引用)来告诉它您想如何排序。 而您想获得钥匙;用于将条目转换为键。
我有以下方式的地图列表: 我想从地址字段的值中获取地址值。例如, 我想从键值"AddressUsageType"中获取值"PRINCIPAL" 我尝试过使用过滤器和许多其他MAP函数,但最终没有找到合适的解决方案。 这是我的代码片段,获取第一个键值对的值: 以下是上述片段的输出:
问题内容: 我有一个带有以下签名的类: 我想要一个来自a 的键,该键将是该类的名称。我如何使用java8流按es名称对列表进行分组?所有es在名称上都是唯一的。 可以在单个流中求解,还是应该以某种方式拆分它还是采用经典解决方案? 问题答案:
有一张单子 如何过滤列表,通过获得最高的映射组,然后使用Java Stream组合到列表中?结果示例如下: ps:如果在多个地图中有相同的值,请将它们全部保留在列表中。 初始代码: