我有一個類與各種布爾和整數。Java HashMap迭代每個變量和返回值
class Animal {
boolean mHappy = false;
boolean mHungry = false;
boolean mSleeping = false;
int mCost = 0;
int mWeight = 0;
boolean isEmpty() {
return !mHappy && !mHungry && !mSleeping && mCost == 0 && mWeight == 0;
}
}
該方法boolean isEmpty()會告訴我,如果所有的值都是空的。
現在,我想我所有的數據移動到包含HashMap:
class Animal {
HashMap<String, Boolean> mBools = new HashMap<String, Boolean>(){{
put("mHappy", false);
put("mHungry", false);
put("mSleeping", false);
}
};
HashMap<String, Integer> mInts = new HashMap<String, Integer>(){{
put("mCost", 0);
put("mWeight", 0);
}
};
boolean isEmpty() {
// MY QUESTION: How can I make this function iterate through each HashMap,
// regardless of size, and check to make sure it's "false" or "0" like this
// line did when I only was using static booleans and integers?
return !mHappy && !mHungry && !mSleeping && mCost == 0 && mWeight == 0;
}
}
我的問題是有關「布爾的isEmpty()」方法,我怎樣才能使這個功能迭代通過每一個HashMap中,無論大小,並檢查以確保每個值是「假」或「0」?
需要注意的是一個原始的布爾不能爲「空」。 「false」的值與「true」一樣有效,「false」並不意味着該值未被使用。如果你真的想區分「空」和有效的布爾值,你必須使用布爾對象,所以引用可以是空值來表示「空」。 –