2

私が間違っている場合は私を訂正してください:

  1. 列挙型はタイプです
  2. 一部の列挙型のオブジェクトは、一度に1つだけの列挙値を取ることができます

ここで質問があります:列挙型(またはタスクに適した他のデータ構造を定義したと仮定します。次のタスクを実行するためにそのようなデータ構造を探しているため、名前を付けることはできません)私のJavaプログラムのどこかに。どういうわけか、main(String [])にenum(または他のデータ構造)オブジェクトがあり、enum(または他のデータ構造)の複数の値を取得したい場合は、どうすればよいですか?列挙型でない場合に使用する必要がある適切なデータ構造は何ですか?

前もって感謝します!

4

2 に答える 2

7

単純な配列を使用できます。コアjava.utilAPIからの任意のコレクションも機能します(リストやセットなど、配列を使用するよりも少し便利です)が、おそらくあなたが求めているのはEnumSetです。

enum Monster {
    GOBLIN, ORC, OGRE;
}

public class Main {
    public static void main(final String[] args) {
        final EnumSet<Monster> bigGuys = EnumSet.of(Monster.ORC, Monster.OGRE);

        for (final Monster act : Monster.values()) {
            System.out.println(bigGuys.contains(act));
        }
    }
}
于 2012-05-26T08:53:09.017 に答える
2

あなたがどちらかを探しているように聞こえます:

  • java.util.EnumSet
  • varargs:method(MyEnum ...values)
  • 単純な配列:MyEnum[]

私は通常java.util.EnumSet自分自身を好みます。操作が簡単で、特定の値などが含まれているかどうかをすばやく確認できます。これorはフラグの代わりにもなります。

于 2012-05-26T08:54:49.530 に答える