0

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

在这种情况下,我需要输出是给定输入值之后的最低值。因此,如果我输入 4 作为输入,则返回值将是 8。

我将如何去做这件事。

4

1 回答 1

2

好的,首先,我假设您的意思是int test = hmConvert.get('5');,因为在您的示例中,它将是null,不是14

您可以简单地通过将值倒置来实现此目标(因此第一个键是不会被覆盖的键)。换句话说,这样做:

for (int m = referenceString.length - 1; m >= 0; m--) {
  hmConvert.put(referenceString[m], m);
}
于 2013-05-01T22:35:12.767 回答