【发布时间】:2017-12-29 07:47:14
【问题描述】:
类似问题见:How to make HashMap work with Arrays as key?
但我需要像 ((int key1, int key2) -> String) 这样的 TreeMap,比较 key1 然后比较 key2。
我的解决办法是:
Map<int[], String> map = new TreeMap<>(Comparator.
<int[]>comparingInt(key -> key[0]).thenComparingInt(key -> key[1]));
但是当我需要((int key1, int key2, int key3) -> String时,我必须写更多。
有没有办法为任意长度的数组生成比较器?
【问题讨论】:
-
可能最好的方法就是写一个
Comparator来做到这一点。我怀疑这可以用 lambdas 合理且可以理解地完成。如果你可以用 lambda 来做,那就去吧,但我个人只会使用普通的 Java。
标签: java arrays lambda java-8 treemap