Números repetidos en un array Java

30/Ene/2014 Java , , , , 23 Comentarios
Programación en Java

Los ejercicios de manipulación de arrays son muy recomendables para aprender la lógica de programación Java, así como sus estructuras. De esta forma tenemos algunos ejemplos como encontrar el primer número repetido, encontrar el número mayor y su posición,…

En este caso vamos a ver como podemos encontrar los números repetidos en un array Java. Es decir, la idea es partir de un primer array que contenga los números a buscar.

int numeros[] = {1,2,3,4};

Y tener un segundo array que contenga la lista sobre la que buscamos.

int lista[]= {2,4,5,2,4,4,4,3,4,2,3};

Una solución rápida sería realizar dos bucles for, el primero que recorra el primer array Java y el segundo que recorra el segundo array Java.

for (int x=0;x

La verdad que este código funcionaría ya que al recorrer los dos arrays Java chequearíamos todos los números. Si bien vamos a intentar que sea un poco más óptimo en la búsqueda. Y es que la idea es en primer lugar ir recorriendo el array de números (igual que hacíamos antes).

for (int x=0;x

Pero en la búsqueda sobre la lista vamos a utilizar un bucle while de Java. Este bucle contendrá dos condiciones, por un lado la del límite del array y por otro un flag que nos diga si hemos encontrado el número, ya que en este caso no hace falta buscar más y podremos parar la búsqueda.

El código sería el siguiente:

for (int x=0;x

Vemos que hemos utilizado un flag encontrado que estará a "false" mientras no encuentre el número, será en este momento cuando cambiemos su valor para salir del bucle.

for (int x=0;x

Ya solo nos quedará preguntar por la variable encontrado para ver si se ha encontrado el número.

for (int x=0;x

Adicionalmente vemos que en la variable iter tenemos el número de búsquedas que hemos realizado en el segundo array Java. Con esto ya tenemos resuelto como buscar números repetidos en un array Java.

Vídeos sobre Java


23 comentarios en “Números repetidos en un array Java”

Víctor Cuervo

Angelo

desarrollar un programa donde se ingrese n numeros enteros , luego debe solicitar un numero a buscar y debe reportar las veces que se repite en el arreglo

Víctor Cuervo

Andre Romero

9.- Se requiere de un programa, que permita realizar las estadísticas de 35 lanzamientos de un solo dado.
Se necesita, por cada vez que sea permitido, la observación del comportamiento porcentual de las
ocurrencias de cada lado de las caras del dado. En todas las programaciones, existe un margen de error
de ± 0,01 en el total de los porcentajes. No aplique métodos o procedimientos de redondeo, no son
precisos.
Ejemplo del funcionamiento del programa:

¿Desea efectuar el proceso? (S/N): s
Lanzamientos
————
1 — 3
2 — 1
3 — 6
4 — 1
5 — 5
6 — 3
7 — 3
8 — 3
9 — 6
10 — 5
11 — 1
12 — 3
13 — 6
14 — 4
15 — 4
16 — 6
17 — 5
18 — 3
19 — 2
20 — 3
21 — 5
22 — 6
23 — 5
24 — 2
25 — 6
26 — 5
27 — 2
28 — 5
29 — 6
30 — 2
31 — 2
32 — 2
33 — 1
34 — 1
35 — 4

——————————
Cuadro Estadístico
——————————
Cara %
Dado Ocurrencias Ocurrencias
——————————
1 — 5 — 14,29%
2 — 6 — 17,14%
3 — 7 — 20,00%
4 — 3 — 8,57%
5 — 7 — 20,00%
6 — 7 — 20,00%

Análisis: Los números 3, 5 y 6 han obtenido el mayor número de ocurrencias de salida en los lanzamientos
**************************

La duda la tengo en imprimir los indices cuyas frecuencias se repiten. Como imprimir 3,5,6 … he intentado y solo logro imprimir con uno , ayuda por favor

Víctor Cuervo

miguel

Diseñar una aplicación que solicite el nombre de una persona y la cantidad de
productos a comprar (esta cantidad debe ser superior o igual a 1, pero inferior
o igual a 20).

Si el cliente ingresa por ejemplo 7, se solicitará escribir por
consola el nombre de esa misma cantidad de productos, los mismos que serán
agregados a un array de tipo string, a la par, deberá indicar los precios (que
también se guardarán en un segundo array de tipo double) y la cantidad (en un tercer
array también double).

Cuando se termine de especificar todos los productos, precios y cantidad;
el programa calculará el SUBTOTAL (sumatoria de todos los montos = precio * cantidad)
además, determinará si el cliente tiene un descuento del 5% (subtotal mayor a 1000).

El programa deberá imprimir:
– Nombre del cliente
– Total de productos comprados
– Subtotal a pagar
– Descuento
– Neto (subtotal – descuento)

Víctor Cuervo

YPG

Ayudaa Necesito resolver

1.Dado un arreglo de enteros x y un entero n, encuentre una posición de x en la que se encuentre n.
2.Dado un arreglo de enteros x, decida si x está ordenado o no de menor a mayor.
3.Dado un arreglo de enteros x, cuente el número de valores diferentes en x

Víctor Cuervo

Steven Garcés

Y si toca encontrar un numero repetido y su posicion de un arreglo con numeros randomicos

Víctor Cuervo

angel

Que lea 10 números por teclado, 5 para un array y 5 para otro array distinto y a partir de ellos realice lo siguiente;
1.- Generar un tercer array con los 10 números, mostrarlos en pantalla (el arreglo 1 estara al inicio y el 2 al final)
2.-Generar un tercer array con los numeros de los dos arreglos originales ordenados, mostrar arreglo resultante
3.- Generar un arreglo con los numeros pares de los arreglos originales, mostrar resultado
4.- Generar un arreglo con los numeros impares de los arreglos originales, mostrar resultado
5.- Generar un arreglo con los numeros primos de los arreglos originales, mostrar resultado
6.-Generar un arreglo con los numeros multiplos de N de los arreglos originales, mostrar resultado

Víctor Cuervo

Maria Valentina Castiblanco Jimenez

Hola es que tengo una tarea que no se como hacer, tengo dos arreglos y necesito que el programa me diga si el mismo número está en la misma posición en ambos arreglos, por ejemplo
arreglo 1= [0, 1, 3, 4, 6, 7]
arreglo 2=[0, 2, 3, 6, 8, 7]
En la anterior 0, 3 y 7 están en la misma posición en ambos arreglos

Gracias

Víctor Cuervo

Víctor Cuervo

Buenas,

Lo que tienes que hacer es un bucle que recorra un array y compare posiciones. Quedaría así:

        int[] a1 = {1,2,3,4,5};
        int[] a2 = {1,1,3,1,5};
        
        for (int x=0;x<a1.length;x++) {
            if (a1[x] == a2[x]) {
                System.out.println("El número " + a1[x] + " en la posición " + x);
            }
        }

Saludos

Víctor Cuervo

Víctor Cuervo

Hemos escrito un artículo explicándolo. Puedes consultarlo en:

Números en la misma posición de dos arrays

Espero que sea de utilidad.

Saludos.

Víctor Cuervo

MARIA

hola sera que me puedes ayudar en una tarea que no entiendo
por si dices si esta es mi tarea:

Posees los siguientes arreglos:
• array1 = [ 1, 2, 6, 4, 5, 10, 7, 8, 54, 47];
• array2 = [“hola”, “mundo”, “perro”, “gato”, “a”,” b”, “25”, “12”, “casa”, “pedro”];
Realiza un diagrama de flujo en el que se imprima que ambos arreglos son iguales.
No debes cambiar o modificar ningún elemento de los arreglos, solo debe aparecer en pantalla “array1 es igual a array2 true” el valor “true “debe ser producto de un operador relacional.
Posteriormente codifícalo.
Tip: Solo debes usar un método que tenga relación con los arreglos.
gracias
porfa ayudaaa

Víctor Cuervo

arnold

hola como te va
a mi me dieron una tarea donde salgan los repetidos de una array q codigos puedo implementar por favor

Víctor Cuervo

Juan

Me pueden Ayudar

escribe un programa en java que contenga que acepte como parametro un vector de 8 numeros enteros mayores que 0, pudiendo contener elementos duplicados. este metodo debe sustituir cada valor repetido por 0. para terminar realiza un metodo muestre el array modificado

Víctor Cuervo

olalla

hola soy principiante en java script estoy haciendo un ciclo superior y me mandaron hacer un ejercicio q tengo q juntar dos arrays pero sin los numero repetidos

Víctor Cuervo

Víctor Cuervo

Buenas,

Puedes concatenarlos y apoyarte en el método .forEach() para poder decir si insertarlo o no si ya existe. Algo así:

let a1 = new Array(1,2,3,4,5);
let a2 = new Array(1,2,3,4,5,6,7,8,9,10);

a1.concat(a2).forEach(item =>{
     if (a1.indexOf(item) == -1) 
       a1.push(item); 
  });

Espero que te sirva.

Saludos.

Víctor Cuervo

andres

si tendo dos array y hay repetidos entre esos dos como ago para que aparescan en un tercer array?

Víctor Cuervo

Dyana

Hola!! y como se haria si fuera un vector de tipo string con 5 campos, pero se ocupa q los string ingresados no sean repetidos , pero como tienes una variable contadora ej: nombre[i] no puedes hacer un if por los tipos como se haria en ese caso???

Víctor Cuervo

Víctor Cuervo

Si quieres hacer un control sobre claves repetidas te recomendaría a utilizar un HashMap. Te dejo un enlace dónde tienes varios ejemplos para que veas cómo funciona. http://lineadecodigo.com/tag/java-collection-hashmap/

Saludos.

Víctor Cuervo

Alan

Buen día amigos, saludos desde México, necesito su ayuda por favor, lo que pasa es que tengo que generar un array de 100×100 con números aleatorios, y después el programa me debe de decir cuántas veces se repite cada número que se encuentra en el array.

Aquí está mi código, lo de el arreglo aleatorio está fácil pero no se como implementar el código para la repetición de los números, en mi código vienen algunas líneas que genera el arreglo en un archivo .pgm pero no hagan caso a eso. Saludos espero y puedan ayudarme

import java.io.*;
import java.util.*;

public class arrelgoBidimensionalCopia {

public arrelgoBidimensionalCopia() {
}

public void imp_arreglopgm(String nombre){

File f;
FileWriter w;
PrintWriter wr;

Random rnd=new Random();
int[][]matriz=new int[100][100];

try{
f=new File(nombre);
w=new FileWriter(f);
wr=new PrintWriter(w);
wr.write(«P2»);
wr.append(«\n255»);
wr.append(«\n100 100»);
wr.append(«\n»);

for (int x = 0; x < matriz.length; x++) { //FOR PARA LLENAR EL ARREGLO CON NÚMEROS ALEATORIOS
for (int y = 0; y < matriz[x].length;y++) {

matriz[x][y] =rnd.nextInt(255+1);
}
}

for (int x = 0; x < matriz.length; x++) { //FOR QUE IMPRIME VALORES DE ARREGLO EN CONSOLA
for (int y = 0; y < matriz[x].length;y++)
System.out.printf( "%d ", matriz[x][y] );
System.out.println();

}
for (int x = 0; x < matriz.length; x++) { //FOR QUE GUARDA VALORES DE ARREGLO EN EL ARCHIVO .PGM
for (int y = 0; y < matriz[x].length;y++)

wr.print(matriz[x][y]+" ");
wr.println();

}

wr.close();

}catch(Exception ex){
System.out.println ("Error"+ex);
}
}

public static void main(String[] args) {
arrelgoBidimensionalCopia metodo_imp=new arrelgoBidimensionalCopia();
metodo_imp.imp_arreglopgm("Archivo.pgm");

}
}

Víctor Cuervo

Sergio

Cómo le harían para buscar en un array que tenga registros repetidos? para que al final me muestre el listado de registros repetidos?’… digamos: numeros[] = {1,2,3,3,4,6,7,3};
y que nos muestre 3,3,3 con sus respectivas posiciones de memoria?

Víctor Cuervo

moa

creo que tu algoritmo tiene un error: imaginemos que el arreglo lista es así:

int lista[]= {1,2,3,4,0,0,0,0,0,0,0}; que va a pasar??

nos va decir que el arreglo tiene 4 números repetidos…. (cosa que es mentira) …….

La solución que proporciono es la siguiente (creo que puede mejorarse):

class E {
public static void main(String[] args) {

int numeros[] = {1,2,3,4};
int lista[]= {1,0,1,1,1,1,0,0,0,0,2};

int iter, n, index;
boolean encontrado, repetido;

for (int x: numeros) {
encontrado = false;
repetido = false;
iter = 0; // Iterador
n = 0; // Contador
index = 0; // índice temporal

while (!repetido && (iter 1) repetido = true;
}
iter++;
}

if (encontrado && repetido)
System.out.println («El » +x + » es un número repetido. Encontrado por segunda vez en el índice » + (iter – 1));
else if (encontrado && !repetido)
System.out.println («El » +x + » solo esta una vez en la lista. Encontrado en el índice «+index);
else
System.out.println («El » +x + » no está en la lista.»);
}
}
}

Víctor Cuervo

Héc

Hola me agrada mucho la forma en que explican los post’s tengo una duda ¿En caso de llenar un arreglo de tamaño 10 con números aleatorios? ¿Cómo se podría hacer?

Saludos y muchas gracias!!!

Víctor Cuervo

Víctor Cuervo

@Héc,

Pues la idea es que vayas generando los números aleatorios (http://lineadecodigo.com/java/numero-aleatorio-en-java/) en un bucle y luego vayas cargando el array (http://lineadecodigo.com/java/inicializar-un-array-en-java/)

Combinando esos dos ejemplos y con un bucle de 1 a 10 tienes el ejemplo.

La idea me parece buena e intentaremos publicarlo en breve en la página.

Saludos.

Víctor Cuervo

Víctor Cuervo

Hola @Hec, hemos publicado este ejemplo en http://lineadecodigo.com/java/llenar-un-array-con-numeros-aleatorios-en-java/
Espero que así sea más sencillo el poder entenderlo.

Saludos.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*