Hashmap - Key:String,Value:Boolean。如何在if语句中测试值?

时间:2017-06-22 19:43:28

标签: java

/ public void getFinishedBooks(HashMap<String, Boolean> library) {

if (library.size() < 1) {

  System.out.println("No books in Library");

} else {

  for (String books : library.keySet()) {

    **if (library.value == true) {**

如果数据类型为Boolean的Hashmap“value”等于try,我希望运行底部IF语句。我已经尝试过.get(),但那不起作用。

3 个答案:

答案 0 :(得分:0)

使用以下代码可以使用

    for (String books : library.keySet()) {
        if(books != null){
        Boolean libValue = library.get(books );
        if (libValuetrue) {
            //added as per your code
        }

        }
    }

答案 1 :(得分:0)

我没有获取密钥集,而是获得了条目集 - 这意味着您可以迭代键/值对,而不必再次查找每个键。例如,要打印所有具有true值的图书:

for (Map.Entry<String, Boolean> entry : map.entrySet()) {
    if (entry.getValue()) {
        System.out.println(entry.getKey());
    }
}

如果您的值可能为null,则处理无效:

for (Map.Entry<String, Boolean> entry : map.entrySet()) {
    if (TRUE.equals(entry.getValue()) {
        System.out.println(entry.getKey());
    }
}

答案 2 :(得分:0)

if (library.isEmpty()) {
    System.out.println("No books in Library");
} else {
    for (String books : library.keySet()) {
         if (library.get(books)) {

替代地

    for (Entry<String, Boolean> entry : library.entrySet()) {
         if (entry.getValue()) {

然而,使用Set<String>会更理想。

Set<String> library = new HashSet<>();

if (library.contains(...))