Mezclar dos arrays en uno. Java – java array

Pregunta:


soy nuevo en el mundo de la programacion, estoy intentando mezclar dos arrays en uno, cada uno con la dimension que nosotros elijamos, y se rellena con randoms. Pero a la hora de mezlarlos, imprimiendo el primero del primer array, primero del segundo array, segundo del primer array, segundo del segundo array.. etc, me da una excepción cuando se imprime.

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 5
at arrays.Ej_5.main(Ej_5.java:34).

¿Alguna ayuda?

package arrays;
import java.util.*;

public class Ej_5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner input = new Scanner (System.in);
        System.out.println("Introduce la dimension del primer array");
        int n=input.nextInt();
        System.out.println("Introduce la dimension del segundo array");
        int d=input.nextInt();

        int[] p_array= new int[n];
        int[] s_array= new int[d];

        for (int i=0;i<p_array.length;i++){
            p_array[i]= (int)(Math.random()*10);
            System.out.print(p_array[i] + " ");
        }

        System.out.println();

        for (int j=0;j<s_array.length;j++){
            s_array[j]=(int)(Math.random()*10);
            System.out.print(s_array[j] + " ");
        }

        System.out.println();

        int[] mezcla = new int [(n+d)-1];
        for (int k=0;k<mezcla.length;k++){
            System.out.print(p_array[k] + " ");
            System.out.print(s_array[k] + " ");
        }


    }

}

Preguntado por: Javi

diegoveloper

Claro, porque estás tratando de leer un indice del array que no existe, mira:

p_array = longitud = n
s_array = longitud = d
mezcla  = longitud = n + d - 1 

  int[] mezcla = new int [(n+d)-1];  
    for (int k=0;k<mezcla.length;k++){
        //aquí el error, va a llegar un momento que k > n y cae
        // también k > d y cae
        System.out.print(p_array[k] + " ");
        System.out.print(s_array[k] + " ");
    }

Lo que deberías hacer sería algo como esto:

int[] mezcla = new int [(n+d)-1];

//llena tu array mezcla con p_array (n) y s_array (d) 
int indice = 0;
int indiceParray = 0;
int indiceSarray= 0 ;
for (int x=0;x<mezcla.length;x++){
   //si es elemento par
   if (x%2 == 0 && indiceParray < p_array.length -1){
     mezcla[x] =  p_array[indiceParray];
     indiceParray++;
   } else if(indiceSarray < s_array.length -1){
     mezcla[x] =  s_array[indiceSarray];
     indiceSarray++;
   }
}


for (int x=0 ;x<mezcla.length;x++){
    System.out.print(mezcla[x] + " ");
}

Como bien mencionan supongamos que n introduces 5 y d = 10 cuando k llegue a 5, el indice en el arreglo p_array[5] no existe y te marcará el error.
Para solucionarlo puedes hacer esto

int mayor = n > d ? n : d; //verificamos que número es mayor
int[] mezcla = new int [mayor];
for (int k=0;k<mezcla.length;k++){
   if(n < k){
      System.out.print(p_array[k] + " ");
   }
   if(p < k){
      System.out.print(s_array[k] + " ");
   }
}

Fuente

Related Posts:

array push con keys php – php array
Pregunta: Buen día. Estoy tratando de crear un array con valores agrupados por categorías, mediante AJAX recibo dos variables una contiene un string con el nombre ...
Tomcat no encuentra los recursos – java angularjs http
Pregunta: Bueno tengo una aplicación con AngularJS que hace peticiones al API de gitHub como un ejemplo para aprender a usar AngularJS, pero el problema ...
Crear cuenta regresiva N segundos mientras se visualiza una Activity en Android – java android
Pregunta: Quiero implementar una cuenta regresiva de N segundos, que se inicie cuando la Activity se muestre, se pare el contador cuando el usuario decide ...
¿Es legal leer imágenes y descripciones de otro sitio web y ponerlas en mi app? – java woocommerce
Pregunta: ¿Es legal leer imágenes y descripciones de otro sitio web y ponerlas en mi programa? Supongamos que quiero hacer una aplicación como la de ebay, ...
Problema con consulta JPQL + JPA + JSF + EJB – java jsf jpa
Pregunta: @Override public Usuario iniciarSesion(Usuario us){ Usuario usuario = null; String consulta; try { ...
No encuentra el audio dentro de src – java
Pregunta: Tengo una carpeta "audios" dentro de "src", para cuando construya el proyecto pueda reproducir los audios. Intento abrir el audio pero me salta "java.lang.NullPointerException" ...
¿Como saber con Apache POI y java si una columna en excel esta oculta? – java apache-poi
Pregunta: Hola estoy importando archivos excel con extensión xls y xlsx pero mi duda es como poder detectar si la columna de una celda esta ...
Spinner y EditText – java android
Pregunta: Tengo este código para cargar un spinner con datos de una base de datos: private class Getfrutas extends AsyncTask<Void, Void, Void> { ...
Obtener elementos específicos de un array – c array optimización
Pregunta: Buenas, si yo por ejemplo hago: char buf; fgets(buf, 1024, stdin); ¿Puedo coger los caracteres que escribí del array sin coger los elementos que no utilicé? ¿O ...
¿Cómo enviar datos de una pagina JSP a un Servlet sin un form? – java jsp java-ee
Pregunta: Tengo un problema. No logro recibir un valor por GET en el Servlet, no se por qué. Aquí el código JSP: <html> ...
Ayuda con un Calendario en Linea de Codigo – java
Pregunta: Pues se supone que mi código debería imprimir en algunos meses 31 días según una de mis condiciones pero no lo hace de hecho ...
¿ Por qué se me detiene la aplicación al usar este pequeño código? – java android bottombar
Pregunta: Tengo un bottomBar donde tengo 5 opciones, la última es la del mapa de google API. Mi problema es que al hacer click en ...
Averiguar número de elementos en un array de LUA – c++ array lua
Pregunta: ¿Cómo puedo averiguar el número de elementos que contiene un array en un fichero LUA? me gustaría poder volcarlo a un entero desde C++. -- ...
Exception java.lang.NumberFormatException al intentar un “.size” dentro de una EL – java jsp jboss
Pregunta: Estoy teniendo una Exception en el siguiente código dentro de un jsp: <c:if test="${usuarios.size gt 10}"> usuarios es un ArrayList que objetos. usuarios no esta vacío ya ...
¿ Cómo implemento este código para android 6.0? – java android
Pregunta: Tengo en un Fragment implementado el Google API y FUNCIONA. Pero funciona en mis 3 móviles que son jellybean, kitkat y lollipop. El ...
Tags:,

Add a Comment

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