我想收集分类在很多组中的数据。当我收到一个组的第一项时,我想把一个布尔值设为TRUE,表示该组中有一些信息。
我的第一个方法是编写一个方法来为我想要检查的每个组返回该布尔值。但由于我有8个组,我虽然给出了不同的范围:我定义了一个ENUM,并创建了一个以ENUM为键,布尔值为值的Map:
enum dataNames{TITLE, AUTHOR, SOURCE, ELEVATION, SPEED, SATELLITES, LATITUDE, LONGITUDE}; //etc
private Map<dataNames, Boolean> availableData;
然后我检查调用此方法的每个布尔值的状态:
public boolean isDataAvailable (dataNames name){
return availableData.containsKey(name);
}
例如:
public void addElevationValue(double elevationValue){
if(!isDataAvailable(dataNames.ELEVATION)) availableData.put(dataNames.ELEVATION, true);
elevacion.add(elevationValue);
}
我的问题是:这是一个很好的方法,还是我应该继续使用我要检查的每个布尔值的方法?而且......为什么? (我只是想学习)
答案 0 :(得分:1)
为什么需要地图告诉您数据是否可用?
看起来您正在将数据存储在集合中,因此如果此集合为空,则没有可用数据。
例如:
public void addElevationValue(double elevationValue){
elevacion.add(elevationValue);
}
public boolean hasElevationData(){
return !elevacion.isEmpty();
}