En Java, lors de l'utilisation de collections, nous rencontrons différents scénarios pour copier les éléments d'une liste dans une autre avec la précaution que l'index des éléments ne soit pas affecté lors de la copie. Pour ce type de scénarios, le package java.util.Collections nous fournit une fonction copy() qui copie les éléments présents dans une liste dans l'autre liste, de sorte que les éléments aient également le même index dans la nouvelle liste. Lors de l'utilisation de cette fonction, la taille de la liste de destination doit être supérieure à la taille de la liste source. Cette complexité temporelle de cette fonction est linéaire.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Voici une syntaxe de copy() en java avec des paramètres :
Syntaxe :
public static void copy(List dest, List src)
Arguments :
La fonction ci-dessus génère une exception ci-dessous :
Vous trouverez ci-dessous les exemples mentionnés ci-dessous :
Pour illustrer l'occurrence de IndexOutOfBoundsException lorsque la taille de la liste de destination est inférieure à celle de la liste source.
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); } }
Sortie :
Puisque la taille de la liste de destination est de 0 et la taille de la liste source est de 6, il n'y a pas de place dans la liste de destination à cet index particulier ; ainsi, cette exception ci-dessous est générée en sortie.
Eexplication :
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); } }
Sortie :
Explication :
Dans cet exemple, nous verrons comment les éléments de la liste de destination sont écrasés lorsque des éléments de la liste source y sont copiés.
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); } }
Sortie :
Explication :
Le package collections nous fournit une méthode statique publique qui peut être utilisée pour copier les éléments d'une liste source dans la liste de destination aux mêmes index. Cette méthode ne fonctionne que dans la liste de destination, qui est supérieure à la liste source, et cette opération a une complexité temporelle linéaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!