0
我有一個用戶列表。Java:如何使用Stream API按條件對實體進行分組?
class User {
String name;
}
而且我需要按名稱對用戶進行分組。
List<Set<User>> groupedBy;
的分組條件是名稱相似,它的一些比較
Comparator<User> p = new Comparator<User>() {
// some comparison logic
};
通過類似的名字,我組的用戶如何使用Java 8流?
我試着使用partitioning
,但它有一個不同的API比我更需要。
Map<Boolean, List<User>> collected = users.stream().collect(Collectors.partitioningBy(new Predicate<User>() {
@Override
public boolean test(User user) {
// ...
}
}, Collectors.toList()));
你基於謂詞試圖'group'?聽起來像'分區'。 – Eugene
對不起,基於名稱比較。 – Finkelson
如果沒有流API,你會怎麼做?考慮到像萊文斯坦距離這樣的事情,它不會導致一個明確分離的集合,因爲它不是傳遞的。 –