JavaのMapが双方向じゃないので、KeyからValueを取り出す事はできても逆にValueからKeyを取り出すことができない。
なんかそれ用のリスト型のライブラリもあるっぽいけど、うまいやり方はないものか…
Stream.of(fooMap)
.takeUntil(fooItem -> fooItem.getValue() == targetValue)
.findLast().get().getKey();
Lightweight-Stream-API使ってこう書いてやってるけど、これがあってるのかどうかもよくわからない。
というかできればO(1)で探したいんだけど…やっぱり逆向きのMapを作ってやるしかないのかなあ?