リストを初期化する方法 Javaのオブジェクト?質問する

リストを初期化する方法 Javaのオブジェクト?質問する

次のコードのようにリストを初期化できません。

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>?

ベストアンサー1

チェックするとAPIなぜなら、List次のように書かれていることに気づくでしょう。

Interface List<E>

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

classそのリンクを確認すると、以下を実装するいくつかの esが見つかりますList

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

AbstractList、、、、、、、、、、、、AbstractSequentialListArrayListAttributeListCopyOnWriteArrayListLinkedListRoleListRoleUnresolvedListStackVector

それらのうちいくつかはインスタンス化できます ( として定義されていないもの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

おすすめ記事