Java 分组布尔

Java 分组布尔,java,map,Java,Map,我想收集分为许多组的数据。当我收到一个组的第一项时,我想把一个布尔值设为TRUE,以表示该组中是否有一些信息 我的第一种方法是编写一个方法,为我要检查的每个组返回布尔值。但由于我有8个组,所以我想给出一个不同的范围:我定义了一个枚举,并创建了一个映射,其中该枚举作为键,布尔值作为值: enum dataNames{TITLE, AUTHOR, SOURCE, ELEVATION, SPEED, SATELLITES, LATITUDE, LONGITUDE}; //etc private Ma

我想收集分为许多组的数据。当我收到一个组的第一项时,我想把一个布尔值设为TRUE,以表示该组中是否有一些信息

我的第一种方法是编写一个方法,为我要检查的每个组返回布尔值。但由于我有8个组,所以我想给出一个不同的范围:我定义了一个枚举,并创建了一个映射,其中该枚举作为键,布尔值作为值:

enum dataNames{TITLE, AUTHOR, SOURCE, ELEVATION, SPEED, SATELLITES, LATITUDE, LONGITUDE}; //etc

private Map<dataNames, Boolean> availableData;
例如:

public void addElevationValue(double elevationValue){
        if(!isDataAvailable(dataNames.ELEVATION)) availableData.put(dataNames.ELEVATION, true);
        elevacion.add(elevationValue);
    }
public void addElevationValue(double elevationValue){
    elevacion.add(elevationValue);
}

public boolean hasElevationData(){
    return !elevacion.isEmpty();
}

我的问题是:这是一个很好的方法,还是应该为我要检查的每个布尔值使用一个方法?而且。。。为什么?(我只想学习)

为什么需要地图来告诉你数据是否可用

看起来您正在将数据存储在集合中,因此如果此集合为空,则没有可用数据

例如:

public void addElevationValue(double elevationValue){
        if(!isDataAvailable(dataNames.ELEVATION)) availableData.put(dataNames.ELEVATION, true);
        elevacion.add(elevationValue);
    }
public void addElevationValue(double elevationValue){
    elevacion.add(elevationValue);
}

public boolean hasElevationData(){
    return !elevacion.isEmpty();
}

为什么不检查
elevation
(列表?)是否为空?您可以使用
集合
并使用集合中的存在来查看是否有该集合的数据。带有布尔值且始终为true的
Map
是不必要的。哦,如果要匹配Java命名标准,它应该是
DataName
(大写D)。我还建议不要在末尾加“s”。例如:
DataName.TITLE
。是的,这会起作用,但这与为每一个都有一个方法是一样的。那么,这比我计划做的事情更可取吗?因为您有单独的方法来添加不同类型的数据,所以也可以使用单独的方法来检查不同类型的数据。