1. ホーム
  2. java

[解決済み] JavaでList<String>オブジェクトを初期化する方法は?

2022-03-21 14:50:03

質問

以下のコードのようにListを初期化することができません。

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

以下のようなエラーが発生します。

型をインスタンス化できません List<String>

をインスタンス化するにはどうすればよいですか? List<String> ?

解決方法は?

を確認すると API に対して List と書いてあることに気づくだろう。

Interface List<E>

であること interface はインスタンス化できないことを意味します。 new List() が可能です)。

そのリンク先を確認すると、いくつかの class を実装しているものです。 List :

既知のすべての実装クラス。

AbstractList , AbstractSequentialList , ArrayList , AttributeList , CopyOnWriteArrayList , LinkedList , RoleList , RoleUnresolvedList , Stack , Vector

その中にはインスタンス化できるものもあります(定義されていないものは abstract class ). これらのリンクを使って、それらについてもっと知ることができます。つまり、どれがあなたのニーズに合っているかを知ることができるのです。

よく使われるのは、おそらくこの3つでしょう。

 List<String> supplierNames1 = new ArrayList<String>();
 List<String> supplierNames2 = new LinkedList<String>();
 List<String> supplierNames3 = new Vector<String>();


ボーナスです。
また、より簡単な方法で、値を使ってインスタンス化することもできます。 Arrays class は、以下のようになります。

List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));

しかし、このリストにさらに要素を追加することはできないことに注意してください。 fixed-size .