Java Hashmap-键:字符串,值:布尔值。如何测试if语句中的值? /public void getfinishedbook(HashMap库){ if(library.size()
如果数据类型Boolean的Hashmap'value'等于try,我希望底部的IF语句运行。我已经尝试了.get(),但这不起作用。使用下面的代码,它会起作用Java Hashmap-键:字符串,值:布尔值。如何测试if语句中的值? /public void getfinishedbook(HashMap库){ if(library.size(),java,Java,如果数据类型Boolean的Hashmap'value'等于try,我希望底部的IF语句运行。我已经尝试了.get(),但这不起作用。使用下面的代码,它会起作用 / public void getFinishedBooks(HashMap<String, Boolean> library) { if (library.size() < 1) { System.out.println("No books in Library"); } else { for (St
/ 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) {**
与其获取键集,不如获取条目集-这意味着您可以迭代键/值对,而不必再次查找每个键。例如,要打印所有具有
true
值的书籍:
for (String books : library.keySet()) {
if(books != null){
Boolean libValue = library.get(books );
if (libValuetrue) {
//added as per your code
}
}
}
for(Map.Entry:Map.entrySet()){
if(entry.getValue()){
System.out.println(entry.getKey());
}
}
或者,如果值可能为空,则处理空值:
for (Map.Entry<String, Boolean> entry : map.entrySet()) {
if (entry.getValue()) {
System.out.println(entry.getKey());
}
}
for(Map.Entry:Map.entrySet()){
if(TRUE.equals(entry.getValue()){
System.out.println(entry.getKey());
}
}
或者
if (library.isEmpty()) {
System.out.println("No books in Library");
} else {
for (String books : library.keySet()) {
if (library.get(books)) {
for(条目:library.entrySet()){
if(entry.getValue()){
但是,使用集合
会更为理想
Set library=newhashset();
if(library.contains(…))
“我试过了.get(),但没用。”那么你到底试过什么?大概你对书籍
键相关的值感兴趣……所以无论你做什么,你都需要使用它。(或者,你可以迭代入口集
,而不是键集
。)您是如何尝试使用.get()
?如果(library.get(books))
可以正常工作的。或者您是否尝试使用了书籍上的get?(这是一个用作键的书籍字符串,而不是地图)是的,您应该学习如何使用get()
,然后尝试理解为什么您最好使用entrySet()
然后开始工作。谢谢Tezra,我错过了作为参数的书籍。get。我正在学习,正如你可能猜到的:)@StephenBrown没关系。这就是为什么在将来,你会包括你尝试过的内容和失败的原因,以便我们知道你做错了什么,(并给你正确的答案)hashmap是。String libValue=library.get(books);
是一个类型未匹配编译器错误。将boolean
与boolean
进行比较以获得boolean
结果,如if(libValue==true)
,是冗余的重复和多余的。答案缺少对书籍空值的处理。@Markus添加了空条件传感器,我的意思是libValue需要检查空值,这是我的错。否则if将抛出NPE。
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> library = new HashSet<>();
if (library.contains(...))