※ ChatGPTを利用し、要約された質問です(原文:列挙型:次の要素を返す?)
Javaの列挙型で次の要素を返す方法について
このQ&Aのポイント
Javaの列挙型で次の要素を返す方法について調査しました。
EnumMapやEnumSetというクラスを使うことで、次の要素を返すメソッドを簡単に実装できます。
次の要素を返すメソッドや前の要素を返すメソッドは需要がありますが、Javaの標準では提供されていません。
javaで次のようなクラスを作りました。
import java.util.*;
public class sample {
enum Wind{
EAST,SOUTH,WEST,NORTH;
Wind next(Wind w){
switch(w){
case EAST: return SOUTH;
case SOUTH: return WEST;
case WEST: return NORTH;
case NORTH: return EAST;
}
return null;
}
}
public static void main(String[] args) {
Wind w = Wind.EAST;
w=w.next(w);
System.out.printf("%d",w.ordinal());
}
}
ここで、next()メソッドは今自分が持っている要素の次の要素を返すメソッドですが、
標準でこのようなメソッドはないのかと疑問に思いました。
今回は4つだったので良かったのですが、
これが100個の要素だったりすれば一つ一つ書くのは馬鹿げていると思います。
色々調べているうちに、EnumMapやEnumSetというクラスの記述に辿り着いたのですが、
このクラスを用いれば上述の「次の要素を返す」或いは「前の要素を返す」などの
メソッドが準備されているのでしょうか。
前の要素を返すとか、次の要素を返すとかは結構需要がある気がするので、
そんなことはできない、ということはないと思うのですが……
宜しくお願いします。
お礼
回答ありがとうございます。 なるほど、一度配列に直してしまうのですね。 全く考えが及びませんでした…… おかげでソースもすっきりしましたし、疑問も解消されました。 ありがとうございます。