Javaでシングルトンリストを作成する方法


シングルトンリストを作成する方法はいくつかありますが、以下にいくつかの例を示します。

  1. 静的フィールドを使用する方法:
public class SingletonList {
    private static final List<String> instance = new ArrayList<>();
    private SingletonList() {}
    public static List<String> getInstance() {
        return instance;
    }
}

上記の例では、instanceという名前の静的なArrayListを持つSingletonListクラスを作成しています。getInstance()メソッドを使用して、シングルトンリストのインスタンスにアクセスします。

  1. 初回アクセス時にインスタンスを生成する方法:
public class SingletonList {
    private static List<String> instance;
    private SingletonList() {}
    public static List<String> getInstance() {
        if (instance == null) {
            instance = new ArrayList<>();
        }
        return instance;
    }
}

上記の例では、getInstance()メソッド内で初回アクセス時にのみインスタンスを生成し、その後は生成済みのインスタンスを返します。

  1. ダブルチェックロッキングを使用する方法:
public class SingletonList {
    private static volatile List<String> instance;
    private SingletonList() {}
    public static List<String> getInstance() {
        if (instance == null) {
            synchronized (SingletonList.class) {
                if (instance == null) {
                    instance = new ArrayList<>();
                }
            }
        }
        return instance;
    }
}

上記の例では、ダブルチェックロッキングを使用してスレッドセーフなシングルトンリストを作成しています。volatileキーワードを使用してインスタンスの可視性を保証し、同期化ブロック内でのみインスタンスを生成します。

これらはいくつかの一般的な方法ですが、シングルトンリストを作成するための他の方法もあります。選択する方法は、アプリケーションの要件や制約によって異なる場合があります。

以上が、Javaでシングルトンリストを作成する方法についての解説です。これらの例を参考にして、プロジェクトに最適な方法を選択してください。