Recientes

viernes, 20 de marzo de 2015

Como quitar datos repetidos de un array en java


Buenas.

Hace poco me surgio el problema que necesitaba quitar datos repetidos de un array en java, luego de buscar la solucion y no encontrarla me toco crear mi propia solucion,

por ejemplo el array que tenia era el siguiente datos = {0,1,0,3,4,2,5,7,4,0,1,0,4,6}
y solo deseaba tener algo asi datos = {0,1,3,4,2,5,7,6} sin que ningun dato se repitiera.

mi solucion fue la siguiente


public ArrayList<Integer> QuitarRepetidos (ArrayList<Integer> datos) {
//int[] datos= {0,1,0,3,4,2,5,7,4,0,1,0,4,6} ; //ejemplo de como serian los datos
int tam = datos.length;
ArrayList<Integer> newarray= new ArrayList<>();
int count = 0;
// con este for miramos lo numeros que aparecen

for (int i = 0; i < tam; i++) {
if (i == 0) {
newarray.add(datos);
}
if (i > 0) {
for (int t = 0; t < newarray.size(); t++) {
if (datos == newarray.get(t)) {
count++;
}
}
if (count == 0) {
newarray.add(datos);
}
}
count = 0;
}
return newarray;
}

una pequeña explicacion de como funciona y lo que hace la funcion, primero pasamos el ArrayList como un parametro de la funcion QuitarRepetidos, luego miramos el tamaño que este posee que va ser nuestro limite del primer for, luego se crea un nuevo array en donde se ira guardando los datos sin repetir y la declaracion de nuestro contador(count).

cuando entra por primera vez entra al primer if y agrega el dato que se posee en la posicion (0) de nuestro array, en las siguientes repeticiones del for entra al segundo if, en el cual tenemos un for que es el que recorre nuestro newarray y el if de este mira si nuestro array(Datos) en su posicion (x) tiene algun dato igual en nuestro newarray, si esto pasa entonces aumentamos 1 a nuestro contador,

nuestro ultimo if verifica que el contador sea cero si es asi agrega el valor de datos al newarray y reiniciamos el contador para revisar la siguiente posicion de array datos.


Espero que les sea de ayuda.

Relacionados

0 comentarios

No hay comentarios. ¡Sé el primero!

Publicar un comentario