Una lista es una secuencia ordenada de elementos almacenados juntos para formar una colección. Una lista puede contener entradas duplicadas y nulas. Una lista nos permite realizar operaciones basadas en índices, es decir, adiciones, eliminaciones, manipulaciones y acceso posicional. Java proporciona una interfaz incorporada <<java.util>> para realizar listas y otras funciones basadas en clases.
Casos: pueden ocurrir dos escenarios diferentes al hacerlo según la longitud de las listas
- Si la lista 2 se agota al agregar elementos alternativamente, los elementos restantes de la lista 1 son la segunda lista son los elementos restantes de la lista 1 que se agregarán en la misma secuencia de ocurrencia.
- Si la lista 1 se agota y así sucesivamente como se discutió en el caso anterior, viceversa
Entonces, el objetivo es eliminar completamente los elementos de la segunda y agregarlos a la primera lista y lo que quede será la segunda lista.
Enfoque: El siguiente enfoque se adopta para almacenar elementos alternativamente en una lista fusionada.
- Dos listas se declaran e inicializan con un conjunto de elementos.
- Se mantienen dos contadores, iyj, para iterar a lo largo de las listas. El bucle se ejecuta hasta la longitud más corta de ambas listas.
- Se mantiene una lista vacía para almacenar los contenidos combinados de ambas listas, en orden de lista1 seguida de lista2.
- Al final del bucle, se agota uno de la lista, es decir, el más corto. Luego se usa un ciclo para iterar sobre los elementos restantes de la lista más larga y almacenarlos al final uno por uno.
- El tipo de datos de la lista combinada debe ser similar a las listas individuales.
Implementación: A continuación se analizan dos ejemplos considerando tanto la lista de enteros como las listas de strings.
Ejemplo 1: listas de strings
Java
// Java Program to Combine Two List // by Alternatingly Taking Elements // importing required packages import java.io.*; import java.util.*; import java.util.Iterator; // Class to access alterate elements class GFG { // Main driver method public static void main(String[] args) { // Creating(declaring) list1 List<String> list1 = new ArrayList<String>(); // Adding elements to list1 // Custom inputs list1.add("Geeks"); list1.add("Geeks"); list1.add("portal"); // Creating(declaring) list2 List<String> list2 = new ArrayList<String>(); // Adding elements to list2 // Custom inputs list2.add("for"); list2.add("is CSE"); list2.add("portal"); // Display message System.out.print("List1 contents: "); // Iterating over List1 Iterator iterator = list1.iterator(); // Condition check using hasNext() which holds true // till there is single element remaining in the // List while (iterator.hasNext()) { // Printing elements of List 1 System.out.print(iterator.next() + " "); } // Next Line System.out.println(); // Display message System.out.print("List2 contents: "); // Iterating over List 2 iterator = list2.iterator(); // Condition check using hasNext() which holds true // till there is single element remaining in the // List while (iterator.hasNext()) { // Printing elements of List 2 System.out.print(iterator.next() + " "); } // Declaring counters int i = 0; int j = 0; // Creating(declaring) merged List List<String> merged_list = new ArrayList<String>(); // Iterating over both the lists until // the elements of shorter List are exhausted while (i < list1.size() && j < list2.size()) { // Step 1: Adding List1 element merged_list.add(list1.get(i)); // Step 2: Adding List2 element merged_list.add(list2.get(j)); // Incrementing counters i++; j++; } // Iterating over the remaining part of List1 while (i < list1.size()) { merged_list.add(list1.get(i)); // Incrementing List1 counter i++; } // Iterating over the remaining part of List2 while (j < list2.size()) { merged_list.add(list2.get(j)); // Incrementing List1 counter j++; } // Next line System.out.println(); // Display message System.out.print("Merged List contents: "); // Iterators iterator = merged_list.iterator(); // Iterating over merged List using hasNext() method // which holds true till there is single element // remaining while (iterator.hasNext()) { // Printing merged list contents System.out.print(iterator.next() + " "); } } }
List1 contents: Geeks Geeks portal List2 contents: for is CSE portal Merged List contents: Geeks for Geeks is CSE portal portal
Ejemplo 2: listas de enteros
Java
// Java Program to Combine Two List // by Alternatingly Taking Elements // importing required packages import java.io.*; import java.util.*; import java.util.Iterator; // Class class GFG { // Main driver method public static void main(String[] args) { // Creating(declaring) List1 List<Integer> list1 = new ArrayList<Integer>(); // Adding elements to List1 // Custom inputs list1.add(2); list1.add(4); list1.add(6); // Creating(declaring) List2 List<Integer> list2 = new ArrayList<Integer>(); // Adding elements to List2 // Custom inputs list2.add(1); list2.add(3); list2.add(5); list2.add(7); // Display message System.out.print("List1 contents: "); // Iterating over List1 Iterator iterator = list1.iterator(); // ConditionCheck using hasNext() method which hold // true till single element in remaining List while (iterator.hasNext()) { // Printing List1 contents System.out.print(iterator.next() + " "); } // New line System.out.println(); // Display message System.out.print("List2 contents: "); iterator = list2.iterator(); // ConditionCheck using hasNext() method which hold // true till single element in remaining List while (iterator.hasNext()) { // Printing List2 contents System.out.print(iterator.next() + " "); } // Setting counters to zeros int i = 0; int j = 0; // Creating(declaring) merged list List<Integer> merged_list = new ArrayList<Integer>(); // Iterating over both the lists // until the shorter list while (i < list1.size() && j < list2.size()) { // Step 1: Adding List2 element merged_list.add(list2.get(j)); // Step 2: Adding List1 element merged_list.add(list1.get(i)); // Incrementing counters i++; j++; } // Iterating over the remaining part of List1 // Case 1: Input: ShorterList following BiggerList while (i < list1.size()) { // Merge remaining List to List1, and // making List2 final as NULL List merged_list.add(list1.get(i)); i++; } // Case 2: Input: BiggerList following ShorterList while (j < list2.size()) { // Merge remaining List to List1,an d // making List2 -> NULL List merged_list.add(list2.get(j)); j++; } // New line System.out.println(); // Display message System.out.print("Merged List contents: "); // Iterating over merged list iterator = merged_list.iterator(); // Condition check using hasNext() method which // holds true till there is single element remaining // in the List while (iterator.hasNext()) { // Printing merged List contents i.e // FinalList = List1 + List2(Null final List) System.out.print(iterator.next() + " "); } } }
List1 contents: 2 4 6 List2 contents: 1 3 5 7 Merged List contents: 1 2 3 4 5 6 7
Publicación traducida automáticamente
Artículo escrito por mallikagupta90 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA