¿Cómo encontrar una sublista en una lista en Java?

List en Java contiene métodos basados ​​en índices. Esto nos permite mantener la colección de pedidos. Esto nos permite buscar, insertar, eliminar e incluso actualizar los elementos. Esto nos permite almacenar varias copias del mismo elemento que ya existe en nuestra lista. Además, además, los elementos nulos pueden formar parte de la Lista.

Accedemos a la lista a través de sus números de índice llamados Interfaz que no discutiremos aquí.

Tipos de lista

ArrayList se usa donde los elementos que se insertarán son conocidos porque no hay flexibilidad una vez que hemos declarado ArrayList, pero se usa con frecuencia porque la operación sobre los elementos es mucho más rápida y la parte buena de Arraylist es que podemos acceder directamente al elemento a través de ArrayL es t interfaz .

La sintaxis para ArrayList :

ArrayList<String> cars = new ArrayList<String>();

 Se prefiere LinkedList sobre Arraylist si queremos una lista flexible sin restricciones de tamaño y las operaciones sobre los elementos son bastante más lentas. 

LinkedList<E> extends AbstractList<E> implements List<E>, Deque<E> ;

El método Vector es similar a Arraylist, solo que Vector tiene una ventaja sobre ArrayList porque todos los elementos en los vectores están sincronizados y solo son útiles si se crean aplicaciones de subprocesos múltiples. Entonces, en la práctica, la clase vectorial ya no se usa con más frecuencia. 

Vector object= new vector(datatype parameter1, datatype parameter2, ...., datatype parameterN)

Sublista es una parte de Lista

El método subList() de la clase java.util.ArrayList se utiliza para devolver una vista de la parte de esta lista entre el fromIndex especificado, inclusive, y toIndex, exclusivo.

La lista devuelta está respaldada por esta lista, por lo que los cambios no estructurales en la lista devuelta se reflejan en esta lista y viceversa. La lista devuelta admite todas las operaciones de lista opcionales.

Sintaxis:

public List subList(int fromIndex, int toIndex)

Parámetros: este método toma el siguiente argumento como parámetro.

  • fromIndex: punto final bajo (inclusive) de la subLista
  • toIndex: punto final alto (exclusivo) de la subLista

Tipo de retorno: una vista del rango especificado dentro de esta lista.
 
Excepción: este método arroja la siguiente excepción.

  • IndexOutOfBoundsException : si un valor de índice de punto final está fuera de rango (tamaño fromIndex)
  • IllegalArgumentException : si los índices de punto final están fuera de servicio (fromIndex > toIndex)

Ejemplo 1:

Java

// Java Program to find 
// Sublist in a List 
import java.util.*; 
  
public class GFG1 { 
    
    // Main Method
    public static void main(String[] argv) throws Exception 
    { 
  
        // Try block for exception
        try { 
  
            ArrayList<Integer> 
                arrlist = new ArrayList<Integer>(); 
  
            // Populating arrlist1 
            arrlist.add(1); 
            arrlist.add(4); 
            arrlist.add(9); 
            arrlist.add(25); 
            arrlist.add(36); 
  
            // Print arrlist 
            System.out.println("Original arrlist: "
                            + arrlist); 
  
            // Getting the subList 
            // using subList() method 
            List<Integer> arrlist2 = arrlist.subList(2, 4); 
  
            // Print the subList 
            System.out.println("Sublist of arrlist: "
                            + arrlist2); 
        } 
  
        // Catch block for exception
        catch (IndexOutOfBoundsException e) 
        { 
            System.out.println("Exception thrown : " + e); 
        } 
        
        // Catch block for exception
        catch (IllegalArgumentException e) 
        { 
            System.out.println("Exception thrown : " + e); 
        } 
    } 
}

Producción:

Original arrlist: [1, 4, 9, 25, 36]
Sublist of arrlist: [9, 25]

Ejemplo 2:

Java

// Java program to find
// sublist in a List 
  
import java.util.*; 
  
public class GFG1 
{
    // Main Method 
    public static void main(String[] argv) throws Exception 
    { 
       // Exception try-catch block
        try { 
  
            ArrayList<String> arrlist = new ArrayList<String>(); 
  
            // Populating arrlist1 
            arrlist.add("Example"); 
            arrlist.add("in"); 
            arrlist.add("Geeks"); 
            arrlist.add("for"); 
            arrlist.add("Geeks"); 
  
            // print arrlist 
            System.out.println("Original arrlist: "
                            + arrlist); 
  
            // Getting the subList 
            // using subList() method 
            List<String> arrlist2 = arrlist.subList(2, 5); 
  
            // print the subList 
            System.out.println("Sublist of arrlist: "
                            + arrlist2); 
            } 
  
        // Exception try-catch block
        catch (IndexOutOfBoundsException e) 
        { 
            System.out.println("Exception thrown : " + e); 
        } 
  
        // Exception try-catch block
        catch (IllegalArgumentException e)
        { 
            System.out.println("Exception thrown : " + e); 
        } 
    } 
} 

Producción : 

Original arrlist: [Example, in, Geeks, for, Geeks]
Sublist of arrlist: [Geeks, for, Geeks]

Ejemplo 3: Para IllegalArgumentException

Java

// Java program to demonstrate 
// subList() method 
// for IllegalArgumentException 
  
import java.util.*; 
  
public class GFG1
{
    // Main Method
    public static void main(String[] argv) throws Exception 
    { 
        
        // Exception try-catch block
        try { 
  
            ArrayList<String> arrlist = new ArrayList<String>(); 
  
            // Populating arrlist1 
            arrlist.add("Example"); 
            arrlist.add("in"); 
            arrlist.add("Geeks"); 
            arrlist.add("for"); 
            arrlist.add("Geeks"); 
  
  
            // Print arrlist 
            System.out.println("Original arrlist: "
                            + arrlist); 
  
            // Getting the subList 
            // Using subList() method 
            System.out.println("\nEndpoint indices "
                            + "are out of order"
                            + " (fromIndex > toIndex)"); 
            List<String> arrlist2 = arrlist.subList(9, 3); 
  
            // print the subList 
            System.out.println("Sublist of arrlist: "
                            + arrlist2); 
             } 
        
        // Exception try-catch block
        catch (IndexOutOfBoundsException e) 
        { 
            System.out.println("Exception thrown: " + e); 
        } 
  
        // Exception try-catch block
        catch (IllegalArgumentException e) 
        { 
            System.out.println("Exception thrown: " + e); 
        } 
        
    } 
    
}

Producción:

Original arrlist: [Example, in, Geeks, for, Geeks]

Endpoint indices are out of order (fromIndex > toIndex)
Exception thrown: java.lang.IllegalArgumentException: fromIndex(9) > toIndex(3)

Ejemplo 4: para IndexOutOfBoundsException

Java

// Java program to demonstrate subList() 
// method for IndexOutOfBoundsException 
  
import java.util.*; 
  
public class GFG1 
{ 
    // Main Method
    public static void main(String[] argv) throws Exception 
    { 
        
        // Exception try-catch block
        try { 
  
            ArrayList<Integer> arrlist = new ArrayList<Integer>(); 
  
            // Populating arrlist1 
            arrlist.add(1); 
            arrlist.add(4); 
            arrlist.add(9); 
            arrlist.add(25); 
            arrlist.add(36); 
  
            // Print arrlist 
            System.out.println("Original arrlist: " + arrlist); 
  
            // Getting the subList 
            // Using subList() method 
            System.out.println("\nEnd index value is out of range"); 
            List<Integer> arrlist2 = arrlist.subList(2, 7); 
  
            // Print the subList 
            System.out.println("Sublist of arrlist: " + arrlist2); 
        } 
          
        // Exception try-catch block
        catch (IndexOutOfBoundsException e) 
        { 
            System.out.println("Exception thrown : " + e); 
        } 
  
        // Exception try-catch block
        catch (IllegalArgumentException e)
        { 
            System.out.println("Exception thrown : " + e); 
        } 
        
    } 
    
}

Producción:

Original arrlist: [1, 4, 9, 25, 36]

End index value is out of range
Exception thrown : java.lang.IndexOutOfBoundsException: toIndex = 7

Publicación traducida automáticamente

Artículo escrito por misraaakash1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *