ホームページ >Java >&#&チュートリアル >JavaのListのsetメソッドとaddメソッドの違いは何ですか?

JavaのListのsetメソッドとaddメソッドの違いは何ですか?

王林
王林転載
2023-04-19 19:49:291526ブラウズ

はじめに

Java の一般的に使用されるコレクション インターフェイス List には、非常によく似た 2 つのメソッドがあります:

E set(intindex, E element);

void add(intindex, E element);

これら 2 つのメソッドは両方とも、コレクション内の指定された位置に指定された要素を挿入します。では、この 2 つのメソッドは何でしょうか?どのような違いがありますか?次に、一般的に使用されるコレクション実装である ArrayList を通じて、これら 2 つのメソッドの違いを見てみましょう。

これらはすべて、次の例のように、コレクション内の指定された位置に新しい要素を挿入します。

#在集合的第2位插入一个 F
# 通过add方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.add(2, "F");
        System.out.println(list);
        
#运行结果:  [A, B, F, C]

#通过set方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.set(2, "F");
        System.out.println(list);
#运行结果: [A, B, F]

上記の 2 つのメソッドの要素は、次のような操作を行うことはできません。 null の場合は null その場合は、NullPointerException がスローされます。

  • 上記 2 つのメソッドの要素に対応するクラスがコレクションに格納できない場合は、ClassCastException がスローされます。 throw

  • 上記 2 つのメソッドの要素に対応する型がコレクションに格納できない場合、IllegalArgumentException がスローされます。

  • ##相違点

    最初の違いは上記との違いです。この例からわかるように、add メソッドは指定された位置に新しい値を挿入し、要素
  • を元の位置に移動し、すべての要素を元の位置の後に移動します。 set メソッドは元の位置を直接上書きします。要素
#在集合的第2位插入一个 F
# 通过add方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.add(2, "F");
        System.out.println(list);
        
#运行结果:  [A, B, F, C]

#通过set方法插入
List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);

        list.set(2, "F");
        System.out.println(list);
#运行结果: [A, B, F]

add メソッドのインデックスの値の範囲は 0<=index <= size() です。これは、add メソッドが追加できることを意味します。現在のコレクションの最後の要素の後の新しい要素; set インデックスのメソッドの値の範囲は 0
#通过add在当前集合的第四个位置插入F
 List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);
        list.add(3, "F");
        System.out.println(list);
        
#运行结果: [A, B, C, F]

#通过set在当前集合的第四个位置插入F
 List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        System.out.println(list);
        list.set(3, "F");
        System.out.println(list);
        
#运行结果: 抛出NullPointerException

以上がJavaのListのsetメソッドとaddメソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。