Java에서는 컬렉션을 사용하는 동안 복사하는 동안 요소의 인덱스가 영향을 받아서는 안 된다는 예방 조치로 한 목록의 요소를 다른 목록의 요소에 복사하는 다양한 시나리오를 접하게 됩니다. 이러한 유형의 시나리오를 위해 java.util.Collections 패키지는 한 목록에 있는 요소를 다른 목록에 복사하여 요소가 새 목록에서도 동일한 인덱스를 갖도록 하는 copy() 함수를 제공합니다. 이 기능을 사용하는 동안 대상 목록의 크기는 원본 목록의 크기보다 커야 합니다. 이 함수의 시간 복잡도는 선형입니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
다음은 매개변수가 있는 Java의 copy() 구문입니다.
구문:
public static void copy(List dest, List src)
인수:
위 함수에서 아래 예외가 발생합니다.
아래에 언급된 예는 다음과 같습니다.
대상 목록의 크기가 원본 목록보다 작은 경우 IndexOutOfBoundsException이 발생하는 것을 설명합니다.
코드:
import java.util.*; public class Demo { public static void main(String[] args) { List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); mysrclist.add("EDUCBA"); mysrclist.add("is a great"); mysrclist.add("Learnig Platform"); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of source list: "+mysrclist); System.out.println("Elements of destination list: "+mydestlist); } }
출력:
대상 목록 크기가 0이고 원본 목록 크기가 6이므로 해당 특정 인덱스의 대상 목록에는 위치가 없습니다. 따라서 아래 예외가 출력으로 발생합니다.
E설명:
코드:
import java.util.*; public class Demo { public static void main(String[] args) { List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("EDUCBA"); mydestlist.add("is a great"); mydestlist.add("Learnig Platform"); System.out.println("Elements of destination list before copy() executes: "+mydestlist); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copy() executes: "+mydestlist); } }
출력:
설명:
이 예에서는 소스 목록의 요소가 복사될 때 대상 목록 요소를 어떻게 덮어쓰는지 살펴보겠습니다.
코드:
import java.util.*; public class Demo { public static void main(String[] args) { //Create lists for source and destination List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); //Populate two source and destination lists mysrclist.add("DIgital Learning"); mysrclist.add("for Java"); mysrclist.add("is great"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("Book Learning"); mydestlist.add("is"); mydestlist.add("a great"); mydestlist.add("Learnig Platform"); mydestlist.add("For All"); System.out.println("Elements of destination list before copying : "+mydestlist); // copy into destination list Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copying : "+mydestlist); } }
출력:
설명:
컬렉션 패키지는 하나의 소스 목록 요소를 동일한 인덱스의 대상 목록에 복사하는 데 사용할 수 있는 공개 정적 메서드를 제공합니다. 이 방법은 원본 목록보다 큰 대상 목록에서만 작동하며 이 작업은 선형 시간 복잡도를 갖습니다.
위 내용은 자바의 copy()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!