我有一个LinkedHashMap,它使用char数组中的值,因为它的键将整数1添加到char数组的大小作为其值:
hmConvert = new LinkedHashMap<Character, Integer>();
for (int m = 0; m < referenceString.length; m++) {
hmConvert.put(referenceString[m], m);
}
char数组中的值的示例是:
'0', '1', '5', '3', '6', '6', '4', '4', '5', '5', '6', '0', '3', '3', '5'
当我在LinkedHashMap上使用get方法时,它会返回最高键,例如:
int test = hmConvert.get(5);
System.out.println(test);
输出结果为:14
在这种情况下,我需要输出GIVEN之后的最低值。因此,如果我输入4作为输入,则返回的值将为8。
我将如何做到这一点。
答案 0 :(得分:2)
首先,我认为你的意思是int test = hmConvert.get('5');
,因为在你的例子中,它是null
,而不是14
。
只需将值放在后面即可实现此目标(因此第一个键是不会被覆盖的键)。换句话说,这样做:
for (int m = referenceString.length - 1; m >= 0; m--) {
hmConvert.put(referenceString[m], m);
}