Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将枚举的所有值与java中给定的数组进行比较?_Java_Arrays_Enums - Fatal编程技术网

如何将枚举的所有值与java中给定的数组进行比较?

如何将枚举的所有值与java中给定的数组进行比较?,java,arrays,enums,Java,Arrays,Enums,我有一个具有以下值的枚举类: enum carBrand{BMW,HONDA,MERC,AUDI}; 还有一个名为Sales的数组,其中包含数组值: sales[] = {CHEVVY, BMW , MERC, AUDI}; 那么,我如何检查sales[]是否具有enum carBrand的所有值 我尝试将其放入for循环中,如下所示: for(int i = 0; i<sales.length;i++){ if(carBrand.sales == sales[i])

我有一个具有以下值的枚举类:

  enum carBrand{BMW,HONDA,MERC,AUDI};
还有一个名为Sales的数组,其中包含数组值:

 sales[] = {CHEVVY, BMW , MERC, AUDI};
那么,我如何检查sales[]是否具有enum carBrand的所有值

我尝试将其放入for循环中,如下所示:

 for(int i = 0; i<sales.length;i++){
     if(carBrand.sales == sales[i]){
        return true;
     }
 return false;
 }
for(int i=0;i
  • 将carBrand值添加到列表中
  • 循环销售,从列表中删除carBrand
  • 检查列表是否为空,如果为空,则检查它们是否具有所有值

注意:类名应该是PascalCase(CarBrand,Sales)中的名称。

我个人建议使用列表对象,而不是数组,但这应该可以

public static boolean checkArray(carBrand[] array) {
    for (carBrand c : carBrand.values()) {
        boolean found = false;
        for (carBrand a : array) {
            if (a == c) {
                found = true;
                break;
            }
        }
        if (!found) {
            return false;
        }
    }
    return true;
}
其中“array”参数将作为代码中的
sales
对象调用

如果数组中不存在所有枚举值,则此代码将返回false

离题: 像这样的事情实际上在互联网上到处都有——在这里,谷歌,甚至Bing(就像Bing一样的garbo),所以在请求帮助之前搜索,可能是一个可行的选择

公共类枚举{
public class Enumeration {

    enum carBrand{BMW,HONDA,MERC,AUDI};

    public static void main(String[] args) {

        String sales[] = {"CHEVVY", "BMW" , "MERC", "AUDI"};


        for(carBrand brand:carBrand.values()) {
            boolean bran=false;
            for(int i=0;i<sales.length;i++) {
                if(brand.toString()==sales[i]) {
                    bran=true;
                    break;
                }
            }
            if(!bran==true) {
                System.out.println("Sales doesn't have " +brand);
            }
        }

    }
}
enum carBrand{宝马、本田、美世、奥迪}; 公共静态void main(字符串[]args){ 字符串销售[]={“雪佛兰”、“宝马”、“美世”、“奥迪”}; 对于(carBrand品牌:carBrand.values()){ 布尔值=假; 对于(int i=0;iOne可能性:从sales创建一个集合,删除所有
CarBrands
,检查剩余集合是否为空(起始集合大小为4)。另一种可能性是使用布尔值的EnumMap,在sales上迭代,将当前键的布尔值设置为true,并在循环检查EnumMap中是否没有false之后。