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

王林
リリース: 2023-04-19 19:49:29
転載
1359 人が閲覧しました

はじめに

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!