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 がスローされます。
#在集合的第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在当前集合的第四个位置插入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 サイトの他の関連記事を参照してください。