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

オータケ
書いた人 オータケ

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

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

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

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

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

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

enumについて

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

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

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

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

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

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

valuesメソッドの使い方

基本的な使い方

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

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

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

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

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

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

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

戻り値の順番について

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

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

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

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

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

valuesメソッドの使用例

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

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

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

まとめ

いかがでしょうか。

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

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

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

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java2

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

オータケ

オータケ

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