类似的问题请参见:如何使HashMap与数组作为键一起工作?
但我需要像((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
。我怀疑使用lambda表达式可能无法合理且易于理解地完成这个任务。如果你能用lambda表达式做到,那就去试试吧,但个人而言,我会选择普通的Java方式来实现。 - Obicere