En Java, los vectores paralelos son dos o más vectores que almacenan datos relacionados que se procesan simultáneamente. Los vectores paralelos permiten manejar diferentes tipos de información de manera sincronizada, como por ejemplo, almacenar nombres y edades de personas en vectores separados pero relacionados.
Para trabajar con vectores paralelos, se deben declarar y crear varios vectores que mantendrán la misma longitud para asegurar que cada elemento en uno tenga un elemento correspondiente en los otros vectores.
// Declaración y creación de vectores paralelos
String[] nombres = {"Ana", "Luis", "María"};
int[] edades = {25, 30, 22};
// Ejemplo de uso
for (int i = 0; i < nombres.length; i++) {
System.out.println(nombres[i] + " tiene " + edades[i] + " años.");
}
Para buscar un valor en uno de los vectores y encontrar el correspondiente en los vectores paralelos, se puede usar un bucle para iterar a través de los vectores.
La instrucción break en nuestro curso solo en usaremos en la estructura selectiva switch. No usamos break en una estructura repetitiva (practica muy utilizada en inteligencia artificial). El break es un corte, si lo usamos dentro de una estructura repetitiva rompemos el bucle sin que complete el bloque que programamos. El curso de este año es PROGRAMACIÓN ESTRUCTURADA, y tiene como objetivo aprender a usar las distintas estructuras de programación y decidir cuando es mejor usar una u otra. Si usamos break en estructuras repetitivas prácticamente no tendríamos necesidad de usar otra estructura, haríamos todo con una y la cortamos cuando quiéranos.
import java.util.Scanner;
public class BusquedaParalela {
public static void main(String[] args) {
Scanner dato = new Scanner(System.in);
String[] nombres = {"Ana", "Luis", "María"};
int[] edades = {25, 30, 22};
boolean encontrado = false;
System.out.print("Ingrese el nombre para buscar: ");
String buscarNombre = dato.nextLine();
// Usar estructura for hace que vaya hasta el final del vector, incluso cuando el dato buscado esté en las primeras posiciones.
for (int i = 0; i < nombres.length; i++) {
if (nombres[i].equalsIgnoreCase(buscarNombre)) {
System.out.println(buscarNombre + " tiene " + edades[i] + " años.");
encontrado = true;
}
}
if (!encontrado) {
System.out.println("Nombre no encontrado.");
}
}
}
En el ejemplo anterior haría más eficiente mi programa si lo hago con un bucle while. El for hace que vaya hasta el final del vector siempre, lo que ocasiona que seguirá trabajando luego de haber encontrado el valor deseado. Si en la busqueda quicieramos obtener la cantidad de personas con una edad determinada, en ese caso sería correcto usar un for, ya que para obtener esa información debo recorrer el vector en su totalidad.
import java.util.Scanner;
public class BusquedaParalela2 {
public static void main(String[] args) {
Scanner dato = new Scanner(System.in);
String[] nombres = {"Ana", "Luis", "María"};
int[] edades = {25, 30, 22};
System.out.print("Ingrese el nombre para buscar: ");
String buscarNombre = dato.nextLine();
//mientras no llego al final y lo que esta en el vector NO es igual a lo buscado
int i=0;
while (i < nombres.length && !nombres[i].equalsIgnoreCase(buscarNombre)) {
i++; //paso a la siguiente posición en mi vector
}
if(i == nombres.length)
System.out.println("Nombre no encontrado.");
else
System.out.println(buscarNombre + " tiene " + edades[i] + " años.");
}
}
A continuación, se muestra cómo realizar operaciones en vectores paralelos, como sumar los valores correspondientes de dos vectores.
public class SumaVectoresParalelos {
public static void main(String[] args) {
int[] vectorA = {1, 2, 3};
int[] vectorB = {4, 5, 6};
int[] suma = new int[vectorA.length];
for (int i = 0; i < vectorA.length; i++) {
suma[i] = vectorA[i] + vectorB[i];
}
System.out.println("Suma de vectores:");
for (int i = 0; i < suma.length; i++) {
System.out.println("Suma en posición " + i + ": " + suma[i]);
}
}
}