もっと短く書けるけど、メリットないか。。。
import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.UnaryOperator; /** * Map<K, List<V>> key存在自動チェック登録 */ @FunctionalInterface public interface MapListpush<K, V> extends Serializable{ void accept(K k, V v); static <T> UnaryOperator<List<T>> listAddReturn(T t){ return l->{ l.add(t); return l; }; } public static <K, V> MapListpush<K, V> of(Map<K, List<V>> m){ return (k, v)->{ m.put(k, Optional.ofNullable(m.get(k)) .map(e->listAddReturn(v).apply(e)) .orElseGet(()->new ArrayList<V>(Arrays.asList(v))) ); }; } }