以前、あまり思いつかずこのように書きました。
oboe2uran.hatenablog.com
2つの連携した Map から、値を取得する時に使えますね。
例)以下のような2つの Map
Map<String, String> amap = Map.of("Orange", "i001", "Lemon", "i002", "Apple", "i003", "banana", "i004"); Map<String, Integer> bmap = Map.of("i000", 100, "i001", 150, "i002", 90, "i003", 140, "i004", 210);
amap の key → value 取得値をキーに bmap から value を取得
transform が使えない時は、
String name = "Apple"; int price = bmap.get(amap.get(name));
とする必要がありました。
Java12 からの transform を使えば、
String name = "Apple"; int price = name.transform(amap::get).transform(bmap::get);
と読み易い方法にできます。
amap に存在しないデフォルトを考慮するなら、
int price = name.transform(e->amap.getOrDefault(e, "i000")).transform(bmap::get);
とすることができます。