flatMap , Map.Entry<Integer, InnerObject> ( - ) Table Guava Tables.toTable :
Table<String, Integer, List<String>> table = objects.stream()
.flatMap(custom -> custom.getInnerObjects().stream()
.map(inner -> new SimpleEntry<>(custom.getDay(), inner)))
.collect(Tables.toTable(
entry -> entry.getValue().getId(),
entry -> entry.getKey(),
entry -> entry.getValue().getSomeVal(),
HashBasedTable::create));
, Table , Guava Tables.unmodifiableTable:
Table<String, Integer, List<String>> unmodifiableTable = Tables.unmodifiableTable(table);
, unmodifiable Table :
Table<String, Integer, List<String>> unmodifiableTable = objects.stream()
.flatMap(custom -> custom.getInnerObjects().stream()
.map(inner -> new SimpleEntry<>(custom.getDay(), inner)))
.collect(Collectors.collectingAndThen(
Tables.toTable(
entry -> entry.getValue().getId(),
entry -> entry.getKey(),
entry -> entry.getValue().getSomeVal(),
HashBasedTable::create),
Tables::unmodifiableTable);
. Guava 22.0, , , 21.0.
, , 1 2. 3, , , InnerObject CustomObject.