>Java >java지도 시간 >Java List의 set 메소드와 add 메소드의 차이점은 무엇입니까?

Java List의 set 메소드와 add 메소드의 차이점은 무엇입니까?

王林
王林앞으로
2023-04-19 19:49:291529검색

머리말

Java에서 일반적으로 사용되는 컬렉션 인터페이스 List에는 두 가지 매우 유사한 메서드가 있습니다:

E set(int index, E element);E set(int index, E element);

void add(int index, E element);

void add(int index, E 요소);

두 방법 모두 컬렉션의 지정된 위치에 지정된 요소를 삽입합니다. 그러면 이 두 방법의 차이점은 무엇입니까? 다음으로, 일반적으로 사용되는 컬렉션 구현인 ArrayList를 통해 이 두 메서드의 차이점을 살펴보겠습니다.

유사점

먼저 ArrayList에서 이 두 메서드의 유사점을 살펴보겠습니다

두 메서드는 지정된 위치에 삽입됩니다. 다음 예와 같은 새 요소의 위치:
    #在集合的第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]
  • 위 두 메서드의 요소는 null일 수 없습니다. null인 경우 NullPointerException이 발생합니다.
  • 해당 클래스 위 두 메서드의 요소를 저장할 수 없는 경우 ClassCastException이 발생합니다. 위 두 메서드의 요소에 해당하는 유형을 컬렉션에 저장할 수 없는 경우 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 메소드가 현재 컬렉션의 마지막 요소 뒤에 새 요소를 추가할 수 있음을 의미합니다. 인덱스의 경우 값 범위는 0< index < size()입니다. 이는 set 메서드가 현재 존재하는 요소만 다룰 수 있고 값 범위가 현재 컬렉션 요소의 범위를 초과할 수 없음을 의미합니다.

위 내용은 Java List의 set 메소드와 add 메소드의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제