私はマップを持っており、各エントリの値を操作して、変更されたマップを返す必要があります。私はそれを動作させることができましたが、結果のマップには空の値を持つエントリが含まれていましたが、これらのエントリを削除したいが、Java 8ストリームAPIではできません。ここjava 8ストリームAPIマップから空の値を外す
は私の元のコードです:私は、マップから空の/ NULL値を持つエントリを削除する方法
userTests.entrySet().stream()
.forEach(entry -> entry.setValue(filterByType(entry.getValue(), supportedTypes)));
userTests.entrySet().stream().filter(entry -> !entry.getValue().isEmpty());
return userTests;
- :
Map<String, List<Test>> filtered = Maps.newHashMap(); for (String userId : userTests.keySet()) { List<Test> tests = userTests.get(userId); List<Test> filteredTests = filterByType(tests, supportedTypes); if (!CollectionUtils.isEmpty(filteredTests)) { filtered.put(userId, filteredTests); } } return filtered;
、ここでは私のJava 8のストリームAPIバージョンですか?
- ストリームAPIでコードを書くためのより良い方法があり、これまでのところ、私はそれが、これは効果がありません
どこ 'filterByType'メソッドの定義は? – Dimitri