1. ホーム
  2. java

[解決済み] HashSetの値を構造的に初期化する方法は?

2022-03-22 07:08:36

質問

を作成する必要があります。 Set を初期値として設定します。

Set<String> h = new HashSet<String>();
h.add("a");
h.add("b");

これを1行のコードで行う方法はないのでしょうか?例えば、最終的な静的フィールドの場合などに便利です。

どのように解決するのですか?

私が使っている、あまり時間効率は良くないが、1行に収まる略記がある。

Set<String> h = new HashSet<>(Arrays.asList("a", "b"));

この場合も、配列を作成してリストに変換し、そのリストを使用してセットを作成しているため、時間効率が悪くなります。

static finalのセットを初期化する場合、私は通常このように書きます。

public static final String[] SET_VALUES = new String[] { "a", "b" };
public static final Set<String> MY_SET = new HashSet<>(Arrays.asList(SET_VALUES));

静的な初期化を行うため、若干見苦しくなく、効率も問題ない。