【5分で解決】Javaのvalues(Enumクラス)をわかりやすく解説!

定数を定義する際にEnumクラスを使うことがあるかと思います。

JavaのEnumは定数を定義するだけでなくメソッド等も定義できる特殊なオブジェクトです。

このEnumクラスの一つにvaluesメソッドがありますが

「valuesメソッドとはそもそも何?」
「Enumクラスの全ての項目を一度に取得する方法がないの?」
「valuesメソッドの戻り値の順番はどういう順番で返ってくるの?」

と思った方はこの記事を読むことでその疑問を解決することができます!

Enumのvaluesメソッドの使い方から戻り値に関する情報がわかりやすく学べます!

enumについて

まず本記事の本題に入る前にenumがどんなものかを軽くおさらいしておきましょう!

次のコードを見て下さい。

protected enum Fruit
{
    Orange,
    Apple,
    Melon
};

public static void main(String[] args)
{
    Fruit fruit_type = Fruit.Orange;

}

このコード自体は特に何かをするものではありませんがmainメソッドよりも前にenumというキーワードが付いたブロック(処理の塊)があります。

このブロックの中で定義されているOrangeやAppleは列挙子と呼ばれています。

enum自体の使い方の解説を深掘りすると本記事の目的に外れてしまうため避けておきますが、

なぜenumを使うのかというと簡単に言ってしまえば読みやすさ(可読性)を向上させることができるからです。

valuesメソッドの使い方

基本的な使い方

まずvaluesメソッドを使うとどのような効果が得られるかについてお話をします。

valuesメソッドは定義した列挙子をまとめて返すという機能を持ったメソッドになります。

早速、書き方を見てみましょう。

public enum Fruit
{
    Orange,
    Apple,
    Melon;
}

public static void main(String[] args)
{
    for(Fruit frt : Fruit.values())
    {
        System.out.println(frt.toString());
    }
}

このコードではFruit.valuesメソッドを呼び出して定義された列挙子をまとめて取得し、拡張for文を使って一つずつの列挙子をprintlnで表示しています。

valuesメソッドの意味や使い方は難しくないですよね。

しかし、ここで一つ疑問が出てきます。

次の項目でその疑問について解説します!

戻り値の順番について

valuesメソッドを呼んだ場合、定義された列挙子がまとめて返ってくると解説しました。

しかし、返ってくる列挙子の順番はどうなっているのでしょうか?

定義した順番どおりに戻ってくるのかそれとも毎回不規則な順番で返ってくるのか・・・

実はvaluesメソッドを呼び出して戻ってくる列挙子の順番は定義した通りの順で戻ってくるということが仕様上決められています。

そのためvaluesメソッドを呼んだ後に定義した順番どおりに直す処理等をわざわざ書く必要はありません!

valuesメソッドの使用例

実際に使う場面としては以下の記事を見ていただくとわかるかと思います!

【Java】enumでvalueOfメソッドの意味と使い方をわかりやすく解説!
更新日 : 2017年6月25日

Enumについてもっと詳しく!

Enumについてもっと詳しく知りたい方は必見です!

【Java入門】Enum(列挙型)の使い方総まとめ
更新日 : 2019年4月25日

まとめ

いかがでしょうか。

本記事ではEnumのvaluesメソッドについて学びました。

valuesメソッドでは定義された列挙子が定義した順番通りに戻ってきます。

もしvaluesメソッドについて忘れてしまったらこの記事を思い出して下さい!

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

オータケ

オータケ

30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。