从LinkedHashMap中的输入键获取特定下限值

时间:2013-05-01 22:17:44

标签: java arrays collections linkedhashmap

我有一个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。

我将如何做到这一点。

1 个答案:

答案 0 :(得分:2)

首先,我认为你的意思是int test = hmConvert.get('5');,因为在你的例子中,它是null,而不是14

只需将值放在后面即可实现此目标(因此第一个键是不会被覆盖的键)。换句话说,这样做:

for (int m = referenceString.length - 1; m >= 0; m--) {
  hmConvert.put(referenceString[m], m);
}