Foros del Web » Programación para mayores de 30 ;) » Java »

Introducir numeros en array sin que se repitan

Estas en el tema de Introducir numeros en array sin que se repitan en el foro de Java en Foros del Web. Hola buenos días; Estoy intentando crear un metodo en java que me permita ir pidiendo una serie de números al usuario, de manera que si ...
  #1 (permalink)  
Antiguo 21/12/2010, 01:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Introducir numeros en array sin que se repitan

Hola buenos días;
Estoy intentando crear un metodo en java que me permita ir pidiendo una serie de números al usuario, de manera que si introduce alguno repetido, no lo guarde y vuelva a pedirle que lo introduzca. Alguien podría darme una idea de como darle esa condición.
Muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 21/12/2010, 02:44
Avatar de alor86  
Fecha de Ingreso: abril-2009
Mensajes: 110
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Introducir numeros en array sin que se repitan

crea una funcion parecida a esta
Código JAVA:
Ver original
  1. private boolean existeValor(int lista[],int val){
  2.  
  3. // aqui haces un "for" para  recorrer el arreglo si encuentra el valor devuelves true
  4. // en caso contra  devuelves un  valor false
  5.  
  6. }
  7.  
  8. luego llamas a la funcion   en la parte donde vayas a agregar el valor
  9.  
  10. por ejemplo
  11.  
  12. if(!existeValor(lista,val)){
  13.       // si no existe lo agregas a la lista
  14. }
  15.  
  16. bueno eso es una idea espero y te sirva
__________________
Cada vez que toco mi código, doy a luz a diez nuevos bugs
  #3 (permalink)  
Antiguo 21/12/2010, 11:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 14 años
Puntos: 2
Respuesta: Introducir numeros en array sin que se repitan

Hola nebur_mg24,

Revisa este código, cualquier estamos en contacto a: [email protected]

******
public class Example {

public boolean existe(List<Integer> lista, Integer valor) {
boolean ret = false;
for (Integer i: lista) {
if (i == valor) {
ret = true;
break;
}
}
if (!ret) {
lista.add(valor);
}
return ret;
}

public static void main(String[] args) {

Example n = new Example();

List<Integer> arreglo = new ArrayList();
System.out.println("msj: " +
(n.existe(arreglo, 5) == true ? "Ya existe" :
"Agregado"));
System.out.println("msj: " +
(n.existe(arreglo, 8) == true ? "Ya existe" :
"Agregado"));
System.out.println("msj: " +
(n.existe(arreglo, 15) == true ? "Ya existe" :
"Agregado"));
System.out.println("msj: " +
(n.existe(arreglo, 3) == true ? "Ya existe" :
"Agregado"));
System.out.println("msj: " +
(n.existe(arreglo, 5) == true ? "Ya existe" :
"Agregado"));
System.out.println("msj: " +
(n.existe(arreglo, 6) == true ? "Ya existe" :
"Agregado"));

Integer ia[] = new Integer[arreglo.size()];
ia = arreglo.toArray(ia);

int sum = 0;

for (int i: ia)
System.out.println("numero: " + i);


}
}

******

Saludos

Manuel
  #4 (permalink)  
Antiguo 21/12/2010, 11:31
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Introducir numeros en array sin que se repitan

Que tal !!!

Si lo que requieres es una prueba puedes usar la clase Vector a pesar de que esta clase esta quedando obsoleta puedes introducir valores en ella y usar su metodo contains para verificar si el numero ya se encuentra.

Codigo java:

Código:
private Vector colNumeros = new Vector();

public void addNumero(int numero)
    {
        if(!this.colNumeros.contains(numero)){
            this.colNumeros.add(numero);
        }
    }
Saludos.
__________________
Dejenme saber cuando estoy equivocado y cuando estoy en lo cierto dejenme saber si existe una solución mejor.
  #5 (permalink)  
Antiguo 21/12/2010, 12:31
 
Fecha de Ingreso: septiembre-2008
Ubicación: Córdoba
Mensajes: 67
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Introducir numeros en array sin que se repitan

Creo que la estructura que se adecua a este problema es un Set. Saludos

Etiquetas: introducir, numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.