如何为每个循环放置一个hashmap(允许多个hashmap通过)?

时间:2016-01-03 05:36:49

标签: java hashmap

所以我正在尝试在Code Academy上创建一个项目,并且我一直在研究过去的代码。基本上,我已将书籍放入一个程序中,该程序将告诉我哪些已经完成,哪些尚未完成。为此,我稍后在代码中创建一个HashMap。我一直在为每个循环遇到问题(它应该检查书是否被读取,然后打印已完成的书),我认为我在代码中定义特定变量时存在问题(但是我早些时候创造了这个对象......也许吧?无论如何,这是我的代码。有人能看出它有什么问题吗?

import java.util.HashMap;

public class Library {

    public Library() {
    }

    public void getFinishedBooks(HashMap<String, Boolean> library) {
        if (library.size() < 1) {
            System.out.println("Error, HashMap is empty.");
        } else {

            for (HashMap<String, Boolean> entry : library.entrySet()) {
                String key = entry.getKey();
                Boolean value = entry.getValue();
                if (value) {
                    System.out.println(key);
                }
            }
        }
    }

    public static void main(String[] args) {
        HashMap<String, Boolean> myBooks = new HashMap<String, Boolean>();
        myBooks.put("Road Down The Funnel", true);
        myBooks.put("Rat: A Biology", false);
        myBooks.put("TimeIn", true);
        myBooks.put("3D Food Printing", false);
        Library myLibrary = new Library();
        myLibrary.getFinishedBooks(myBooks);

    }
}

谢谢!

3 个答案:

答案 0 :(得分:1)

使用Entry更改HashMap,在此行中:

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

library.entrySet()返回Map.Entry,而不是HashMap。

答案 1 :(得分:0)

正如您所见here,Map#entrySet返回一组Entrys,但在for-each循环中,您尝试将其转换为HashMap

答案 2 :(得分:0)

将您的代码更改为getFinishedBooks()

中的以下代码
$(function() {
$(".submit_button").click(function() {
var textcontent = $("#content").val();
//var textcontent1 = $("#content1").val();
var dataString = 'content='+ textcontent;
//var dataString1 = 'content1='+ textcontent1;
if(textcontent=='')
{
alert("Enter some text..");
$("#content").focus();
//$("#content1").focus();
}
else
{
$("#flash").show();
$("#flash").fadeIn(400).html('<span class="load">Loading..</span>');
$.ajax({
type: "POST",
url: "action.php",
data: dataString,
// data1: dataString1,//dataString1,
cache: true,
success: function(html){
$("#show").after(html);
document.getElementById('content').value='';
//document.getElementById('content1').value='';
$("#flash").hide();
$("#content").focus();
//$("#content1").focus();
}  
});
}
return false;
});
});