Tengo una consulta, tengo que hacer un tp para la facu, y en éste se pide basicamente cargar dos vectores enteros a y b (arreglos primitivos, nada de usar ArrayList ni la clase Vector ni nada).
En un punto me pide generar un tercer vector con las repeticiones que hay entre el vector a y b.
Lo estaba resolviendo y quería saber si ésta es una forma eficiente y correcta de hacerlo:
Código Javascript:
Ver original
public int[] getNumerosRepetidos(){ //Los primeros dos for sera para contar la cantidad de elementos repetidos que existen entre el arreglo a y b int contadorRepetidos = 0; for(int m=0; m < a.length; m++){ //Recorremos vector a for(int k=0; k < b.length; k++){ //Recorremos vector b if(a[m] == b[k]){ //Si ambos son iguales contadorRepetidos++; } } } int[] resultados = new int[contadorRepetidos]; int iteracionRepetido = 0; for(int m=0; m < a.length; m++){ //Recorremos vector a forArregloB: for(int k=0; k < b.length; k++){ //Recorremos vector b if(a[m] == b[k]){ //Si ambos son iguales for(int l=0; l < resultados.length; l++){ //Recorremos vector de resultados if(resultados[l] == b[k]){ //Controlo que el numero no este en el arreglo de resultados para no duplicar datos continue forArregloB; //Si está, entonces no me hace falta buscar repeticiones con éste numero, asi que continúo } } resultados[iteracionRepetido] = a[m]; //Guardamos en los resultados en la posicion correspondiente iteracionRepetido++; //Sumamos uno a la posicion } } } return resultados; }
Como debo declarar un vector Resultado, del cual no se con anticipación el tamaño que tendrá, primero debo recorrer con dos for la cantidad de elementos repetidos.
Luego con otros dos for lo que hago es guardar resultados, y un tercer for dentro de éstos, para comprobar que el elemento insertado en el vector resultados no se encuentre ya incluído.
¿Ésto es una forma eficiente de realizarlo? Me gusta programar de forma ordenada y sinceramente ésto de hacer tantos for me parece una "gronchada", pero no le encuentro otra manera.
Espero puedan ayudarme, muchas gracias.
Saludos
PD: Si aportan algo, por favor consideren que son arreglos primitivos, nada de usar clases como ArrayList o Vector como ya aclaré.