java 在散列表中查找特定值

f4t66c6m  于 2023-01-16  发布在  Java
关注(0)|答案(2)|浏览(95)

是否有代码可以在散列表中找到特定的值?我想使用for循环将散列表中的值转换为int。

for (int i = 0; i < items; i++) {
        cost = Integer.parseInt(myHashmap);
    }

我甚至可以在散列表上使用.parseInt吗?或者有没有其他方法可以将散列表中的位置转换为int?像String[3]一样,有没有代码可以在散列表中找到特定的位置?

v8wbuo2f

v8wbuo2f1#

要迭代Map的所有值,请使用values方法:

Map<Long, String> map = ...;
for (final String value = map.values()) {
  System.out.println(value);
}

要查找特定值,请迭代所有值,检查 predicate ,如果找到则返回:

String findValue(final Map<Long, String> map, final Predicate<String> condition) {
  for (final String value = map.values()) {
    if (condition.test(value)) {
      return value;
    }
  }
  return null;
}

要查找给定值的键,请迭代Map的 entry set

Long findKey(final Map<Long, String> map, final String value) {
  for (final Map.Entry<Long, String> entry = map.entrySet()) {
    if (Objects.equals(entry.getValue(), value)) {
      return entry.getKey();
    }
  }
  return null;
}

当然,一旦你有了一个值(或者键),你就可以用任何你喜欢的方式来使用它,包括把它作为参数传递给Integer.parseInt

zu0ti5jz

zu0ti5jz2#

myHashmap.values()将返回Map的所有值。Integer.parseInt(value)将String参数解析为有符号十进制整数对象。

public static void main(String[] args) {
        Map<String, String> myHashmap = new HashMap<>();
        myHashmap.put("A", "10");
        myHashmap.put("B", "20");
        myHashmap.put("C", "30");
        myHashmap.values().forEach(value -> {
            System.out.println(Integer.parseInt(value));
            // Rest of the logic
        });
    }

相关问题