【发布时间】:2015-12-08 02:18:07
【问题描述】:
public List<Path> removeUnwantedPaths(List<Path> listofPaths, List<String> ids) {
List<Path> entries;
entries = listofPaths.stream()
.filter(p -> ids.contains(p.getParent().getFileName().toString()))
.collect(Collectors.toList());
return entries;
}
entries 包含路径元素的列表。元素未排序。我希望按p.getParent().getFileName().toString() 返回的ids 对它们进行排序,以便在我返回集合之前对列表进行组织和排序。如何使用 Java 1.8 groupingBy() 对集合进行分组?所以如果我的列表最初包含以下元素:
212_Hello.txt
312_Hello.txt
516_something.xml
212_Hello.xml
我希望将列表组织为:
212_Hello.txt
212_Hello.xml
312_Hello.txt
516_something.xml
其中 212、312、516 是 ID。
【问题讨论】:
-
您的问题不清楚?你想返回
Map<String, List<Path>>吗?如果不是,您如何将列表中的项目分组?除非您只想对项目进行排序(而不是对它们进行分组)? -
所以 id 是父母的文件名?
-
是的,所以文件路径是这样的
/src/resource/files/212/212_Hello.txt -
当你想排序时为什么要
groupingBy()?为什么不是sort()成为您的首选?
标签: java arraylist collections java-8 java-stream