In Java stoßen wir bei der Verwendung von Sammlungen auf verschiedene Szenarien, in denen die Elemente einer Liste in die andere kopiert werden, wobei darauf zu achten ist, dass der Index der Elemente beim Kopieren nicht beeinträchtigt wird. Für solche Szenarien stellt uns das Paket java.util.Collections eine Funktion copy() zur Verfügung, die in einer Liste vorhandene Elemente in die andere Liste kopiert, sodass Elemente auch in der neuen Liste denselben Index haben. Bei Verwendung dieser Funktion muss die Größe der Zielliste größer sein als die Größe der Quellliste. Diesmal ist die Komplexität dieser Funktion linear.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Es folgt eine Syntax von copy() in Java mit Parametern:
Syntax:
public static void copy(List dest, List src)
Argumente:
Die obige Funktion löst die folgende Ausnahme aus:
Im Folgenden finden Sie die unten genannten Beispiele:
Um das Auftreten von IndexOutOfBoundsException zu veranschaulichen, wenn die Größe der Zielliste kleiner als die Quellliste ist.
Code:
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); } }
Ausgabe:
Da die Größe der Zielliste 0 und die Größe der Quellliste 6 beträgt, gibt es in der Zielliste an diesem bestimmten Index keinen Platz; Daher wird die folgende Ausnahme als Ausgabe ausgelöst.
EErklärung:
Code:
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); } }
Ausgabe:
Erklärung:
In diesem Beispiel sehen wir, wie die Elemente der Zielliste überschrieben werden, wenn Elemente der Quellliste hinein kopiert werden.
Code:
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); } }
Ausgabe:
Erklärung:
Das Collections-Paket stellt uns eine öffentliche statische Methode zur Verfügung, mit der die Elemente einer Quellliste an denselben Indizes in die Zielliste kopiert werden können. Diese Methode funktioniert nur in der Zielliste, die größer als die Quellliste ist, und dieser Vorgang hat eine lineare Zeitkomplexität.
Das obige ist der detaillierte Inhalt voncopy() in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!