Java 列挙の例: ValueOf、toString、Switch、compareTo

タイプ enum Javaの場合 は、定数変数を宣言できる特殊なデータ型です。Java では、列挙型の宣言キーワードは enum.

enum

5つの検索エンジンで列挙型変数を宣言します:

public enum searchengines{Google, Yahoo, Bing, Exhead, Baidu};
末尾のカンマはオプションで、両方の書き込みは合法です。
定数にアクセスできます:

enginesSearch engine = 検索エンジン.Google;
すべての列挙型は、class java.lang.Enum クラスは 1 つの親からしか継承できず、複数のインタフェースから継承できるためです。

列挙型は強力なツールです クラスまたはインターフェイスを定義するため、メソッドと属性を配置できます。デフォルトでは、コンパイラは values() は、宣言された順序で値を含む配列を返します。

for

静的メソッド values() は、スキャンの場合に便利です たとえば、

for( 検索エンジン エンジン: searchengines.values()) {
     System.out.println(エンジン);
}

属性とメソッド

列挙型には、コンストラクター、メソッド、変数、および定数を含めることができます。コンストラクタで引数として渡す値で定数を初期化できます

public class EnumExample {

public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
プライベートフロートビジター。

private searchengines(float visitors) {
this.visitors = visitors;
}
}

public static void main(String[] args) {
for( search engines: searchengines.values()) {
System.out.println("検索エンジン: "+engine+"
visitors: "+engine.visitors+" millions");
}
}
}
Output:

検索エンジン: Googleの訪問者: 1億6000万人
検索エンジン: Yahooの訪問者: 664000><00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Baiduの訪問者:6600万
検索エンジン:訪問者に質問:460万
定数が宣言されています static および finalであり、一度作成すると変更できません。

2つの列挙型間の等価比較

比較はメソッドequals()または演算子 '==' を使用して、どちらも同じ結果になるので、選択するオプションがあります.

google search engines = searchengines.Google;
if(google.equals(GoogleSearchengines)))
System.out.println("等しいとの比較");
if(google == searchengines.Google)
System.out.println("==との比較");

The Switch 命令

public class EnumExample{

public enum searchengines{
Google(160), Yahoo(66.4f), Bing(7.f), Baidu(66), Ask(4.6f);
プライベートフロートビジター。

private searchengines(float visitors) {
this.visitors = visitors;
}
}

検索エンジン名。

EnumExample(検索エンジン名){
this.name=name;
}

public void slogan() {
switch (name) {
Google:
System.out.println("悪意を持たない、悪を行わない");
estate;
box Yahoo:
System.out.println("Yahoo! It's You.ヤフーですか?
estate;
box Bing:
System.out.println("Bingは行うためのものです。");
estate;
box Baidu:
System.out.println("Baiduは中国語をよく知っている");
estate;
box Ask:
System.out.println("質問は何ですか?");
estate;
}
}

public static void main(String[] args) {
Google Example = new ExampleNumber(SearchEngines.Google);
google.slogan();
例 enum yahoo = new 例 Enum(Searchengines.Yahoo);
yahoo.slogan();
例 Num bing = new SampleNum(SearchEngines.Bing);
bing.slogan();
Baidu Example Enum = new Baidu Example Enum(SearchEngines.Baidu);
baidu.slogan();
EnumExample ask = new EnumExample(Searchengines.Ask);
ask.slogan();
}
}
コンストラクタが宣言されているため、new キーワードで enum のインスタンスを作成できません プライベート 実行時に作成されます。private に設定しなくても、private.

toString and ValueOf

toString は定数の名前を返します:

System.out.println(yahoo.toString());
関数 valueOf() は、メソッド toString()、名前を付けると定数が返されます:

System.out.println(yahoo.valueOf("Yahoo"));

compareTo

この関数は、2つの列挙を比較するために使用され、このオブジェクトがそれぞれ小さい、等しい、または大きい場合に-1、0、1を返します.

System.out.println(google.compareTo(yahoo));
"google" が "yahoo" の前に宣言されているため、コンソールには -1 と表示されます。

覚えておくべきこと:
  • 定数と関連する値を簡単に宣言します。
  • 列挙 java.lang.Enum.
  • Enumerations cannot implement interfaces.
  • Enumerations <メソッドと変数は.
  • ><>変数とコンストラクタはprivate.
  • メソッドを使用して2つの列挙型を比較できますcompareTo().
  • les 列挙 は、Switch.
参照: