2017-12-06 7 views
-4

私は値を持つ列挙型クラスがあります。enumのすべての値をJavaの指定された配列と比較するにはどうすればよいですか?

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

を、配列の値での販売と呼ばれる配列があります:

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

それでは、どのように私は、売上高は[]列挙型のすべての値を持っていることを確認することができ車のブランド?

私のようにループのためにそれを置くしようとしている

:リストである場合は、リストから

  • チェックをcarBrandを外し、
  • ループの売上を一覧表示するcarBrand値を追加

    for(int i = 0; i<sales.length;i++){ 
        if(carBrand.sales == sales[i]){ 
         return true; 
        } 
    return false; 
    } 
    
  • +0

    ワン可能性:salesから* set *を作成し、CarBrandsのすべての* *値*を削除し、残りのセットが空である(そして開始セットサイズが4である)かどうかをチェックします。もう一つの可能​​性は、ブール値を持つEnumMapであり、売上を反復し、現在のキーに対してブール値をtrueに設定し、ループチェックの後にenumMapにfalseがないことを確認します。 –

    答えて

    0
    • 空の場合はすべての値を持ちます

    注:クラス名は、PascalCase(CarBrand、Sales)の名前である必要があります

    0

    私は個人的には、このような使用しているArrayではなくリストオブジェクトを使用することを推奨しますが、これはうまくいくはずです。 「アレイ」パラメータは、あなたのコード内で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; 
    } 
    

    すべての列挙型の値が配列内に存在しない場合、このコードはfalseを返します。オフトピック

    :このような 物事はすべてインターネット上で実際にある - ここでは、グーグル、でもビング(Bingのはガルボなどのように)、その実行可能な選択肢が

    0
    おそらく、助けを要求する前に検索
    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); 
          } 
         } 
    
        } 
    } 
    
    関連する問題