この記事では、java に関する関連知識を提供します。主に、列挙の基本操作、コレクション クラスによる列挙のサポートなど、列挙に関連する問題を紹介します。内容を見てみましょう。以下、皆さんのお役に立てれば幸いです。
推奨学習: 「java ビデオ チュートリアル 」
列挙は、特定の型の変数へのアクセスを許可します。値はいくつかの固定値の 1 つだけです。そうでない場合、コンパイラはエラーを報告します。列挙により、コンパイラはコンパイル中にソース プログラムによって割り当てられた不正な値を制御できます。これは、通常の変数を使用して開発段階では達成できません。 . 目標は1つ。
JDK1.5 以降では、キーワード enum を使用して列挙型と呼ばれる新しい型を定義します。
列挙型 (enum) とクラス (class)、インターフェイス (interface) は次のとおりです。同レベル
事例紹介
色を定義します。定義できるのは赤、緑、青の 3 色のみです
通常の方法
では、色が 3 つの色のうち 1 つだけを選択できるようにこの問題を解決するにはどうすればよいでしょうか? ? ?
Enum クラスと enum キーワード
enum キーワードを使用して定義された列挙クラスは、実際にはクラスの定義と同等であり、このクラスは Class Enum クラスのみを継承します。 。
public enum Color { RED, GREEN, BLUE;}
一般的に使用される列挙メソッド
##protected Enum(String name,int ordinal)
この構造外部から直接呼び出すことはできず、そのサブクラスによってのみアクセスできます。このコンストラクターは自動的に呼び出されます
public Final String name()列挙型の名前を返します
public String toString ()列挙型の名前を返します
public Final int ordinal()デフォルトでは 0 から始まる列挙型のシリアル番号を返します
public Final booleanquals (オブジェクトその他)2 つの列挙型が同じかどうかを判断する
コード
public class EnumTest { public static void main(String[] args) { //定义一个color变量,只能设置为RED、GREEN、BLUE Color color = Color.BLUE; System.out.println(color); System.out.println(color.name()); System.out.println(color.toString());//三种方式都是打印名字 System.out.println(color.ordinal());//返回枚举的序号RED--0、GREEN--1、BLUE--2 Color[] values = Color.values();//返回所有枚举类型 System.out.println(Arrays.toString(values)); }}
final クラス# を生成します。
##列挙型は外部から呼び出すことができないため、プライベートでのみ変更できます
コンストラクターは呼び出しのみ可能ですオブジェクト内
#public enum Color {
RED(10),
GREEN(20),
BLUE;
private int Number;//属性
private Color() {//默认构造方法
System.out.println("无参构造器被调用了!!!");
}
private Color(int Number) {
this.Number = Number;
System.out.println("有参构造器被调用了!!!");
}
public int getNumber(){
return Number;
}}
メイン メソッド
public class EnumTest { public static void main(String[] args) { Color color = Color.RED; System.out.println(color.name()); System.out.println(color.getNumber());//获取Number的值 }}
#列挙実装インターフェイス
列挙型では、インターフェイスを継承できます。インターフェイスを実装するには、列挙型クラスにメソッドを実装するか、オブジェクト内にメソッドを実装するかの 2 つの方法があります。
方法 1: 列挙型オブジェクト内のインターフェイスにメソッドを実装するinterface info{ public String getColor();}public enum Color implements info{ RED{ @Override public String getColor() {return "红色";} }, GREEN{ @Override public String getColor() {return "绿色";} }, BLUE{ @Override public String getColor() {return "蓝色";} };}
方法 2: 列挙型クラスのインターフェイスにメソッドを実装する
interface info{ public String getColor();}public enum Color implements info{ RED,GREEN,BLUE; @Override public String getColor() { return null; }}
メインメソッド
public class EnumTest { public static void main(String[] args) { Color color = Color.RED; System.out.println(color.getColor()); }}
列挙型は抽象メソッドを実装します
列挙型では、抽象メソッドを定義できます。オブジェクトによって実装されます
列挙クラスpublic enum Color { RED{ @Override public String getColor() {return "红色";} }, GREEN{ @Override public String getColor() {return "绿色";} }, BLUE{ @Override public String getColor() {return "蓝色";} }; //在枚举中定义一个抽象方法,通过枚举对象实现 public abstract String getColor();}
メインメソッド
public class EnumTest { public static void main(String[] args) { Color color = Color.BLUE; System.out.println(color.getColor()); }}
列挙型の実装 シングルトン モード
列挙型は、データが指定された範囲内にあることを確認するために使用されます。列挙型に 1 つの型 (1 つの値) しかない場合、存在するのは 1 つだけです。オブジェクトを列挙型に追加すると、シングルトン パターンを実装できます。
メイン メソッドpublic enum Singletion { SINGLETION; public void Method(){ System.out.println("使用枚举实现单例模式!!!"); }}
public class EnumTest {
public static void main(String[] args) {
Singletion singletion=Singletion.SINGLETION;
singletion.Method();
}}
コレクション クラス列挙のサポート
JDK1.5 以降、2 つの新しいサブクラスが Set インターフェイスと Map インターフェイスに追加されました: EnumSet
EnumMap
2 つのサブクラスEnumSet
一个专门
Set
实现与枚举类型一起使用。 枚举集中的所有元素都必须来自创建集合时明确或隐式指定的单个枚举类型EnumSet
是一个抽象类,不能直接创建实例对象,但是可以通过方法来使用。EnumSet.allOf(Class<e> elementType)</e>
把一个枚举类型全部填充到集合中去public static <e extends enum>> EnumSet<e> complementOf(EnumSet<e> s)</e></e></e>
创建与指定枚举集具有相同元素类型的枚举集,最初包含此类型的所有元素,该元素 不包含在指定的集合中。public static <e extends enum>> EnumSet<e> copyOf(EnumSet<e> s)</e></e></e>
创建与指定的枚举集相同的元素类型的枚举集,最初包含相同的元素(如果有)
代码
import java.util.EnumSet;public class EnumTest { public static void main(String[] args) { EnumSet<color> set = EnumSet.allOf(Color.class);//把一个枚举类型全部填充到集合中去 for (Color c : set) { System.out.println(c.name()); } }}</color>
EnumMap
EnumMap
一个专门Map实现与枚举类型键一起使用。 枚举映射中的所有密钥必须来自创建映射时明确或隐式指定的单个枚举类型。 枚举地图在内部表示为数组。 这种表示非常紧凑和高效。
代码
import java.util.EnumMap;public class EnumTest { public static void main(String[] args) { EnumMap<color> map = new EnumMap(Color.class); map.put(Color.RED, "红色"); map.put(Color.GREEN, "绿色"); map.put(Color.BLUE, "蓝色"); System.out.println(map.get(Color.RED)); }</color>
推荐学习:《java视频教程》
以上がJavaの基本的な誘導列挙の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
