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

Comparar arreglo

Estas en el tema de Comparar arreglo en el foro de Java en Foros del Web. Estimados amigos gusto volver a visitarlos, quisiera pedirle un favor necesito comparar el contenido de un arreglo. Me explico tipoProducto[i] creamos que tiene 5 posiciones, ...
  #1 (permalink)  
Antiguo 30/09/2009, 00:56
gvv
 
Fecha de Ingreso: abril-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
De acuerdo Comparar arreglo

Estimados amigos gusto volver a visitarlos, quisiera pedirle un favor necesito comparar el contenido de un arreglo.
Me explico

tipoProducto[i]

creamos que tiene 5 posiciones, necesito comparar el contenido de celda posicion uno con otro

ejemplo

tipoProducto[0] = hola
tipoProducto[1] = holas
tipoProducto[2] = chao
tipoProducto[3] = hola
tipoProducto[4] = chaos

lo que necesito es comparar una a una si encuentro valores iguales como en el caso de la posicion 0 y 3

y dejarlo en otro arreglo, no he encontado ningun metodo que me ayude o sinseramente no se como hacerlo, estoy recien aprediendo a POO y me a costado.

Bueno muchas gracias y cuaquier ayuda sera muy bien agradecida

Gracias
  #2 (permalink)  
Antiguo 30/09/2009, 01:46
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: Comparar arreglo

Hola

Primero hay que saber qué tipo de dato es el que recibirá tu arreglo. Por lo que leo creo que recibirá Strings.

¿Qué es lo que quieres dejar en otro arreglo? Si es el resultado de la comparación sólo podrá ser true o false. Declararás un arreglo de tipo boolean pues el resultado que arroja una comparación es justamente boolean.

Como el tipo de dato es String utilizarás el método equals() para comparar cadenas de Strings. Esto se hace así:

tipo_producto[1].equals(tipo_producto[3]);

La línea anterior la puedes asignar a alguna variable de tipo boolean.

Espero te sirva
  #3 (permalink)  
Antiguo 30/09/2009, 06:49
gvv
 
Fecha de Ingreso: abril-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
Respuesta: Comparar arreglo

Gracias Cguer

disculpa por no expresarme bien, lo que necesito dejar en el otro arreglo es todos los contenidos del arreglo anterio pero sin repetirse hay alguna forma de hacer eso.

gracias
  #4 (permalink)  
Antiguo 30/09/2009, 07:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Comparar arreglo

Creo que lo que necesitas es algo como este método:
//Vamos a suponer que tienes un array de 5 elementos no dinámico
public eliminaIgualesEnTipoProducto(String[] tipoProducto) {
String[] tipoProductoAux[5];
int k = 0;
boolean existsEqualElement = false;
for (int i=0, i<tipoProducto.length, i++) {
for (int j=0, j<tipoProducto.lenght j++) {
if (i!=j && tipoProducto[i].equals(tipoProducto[j]) {
existsEqualElement = true;
}
}
if(!existsEqualElement) {
tipoProductoAux[k] = tipoProducto[i];
k++;
}
}
//Reestructura el elemento auxiliar
for (int i=k, i<tipoProductoAux.lenght, i++) {
tipoProductoAux[i] = null;
}
}

- Ten en cuenta que esto no lo he probado, sino que lo hice directamente en un editor de texto, así que no sé si he metido algún gazapo.

//Condicionantes

- Si en un principio el array tipoProducto[] tiene elementos null a partir de un cierto punto del array, convendría definir una variable numeroProductos de la siguiente forma:

int numeroProductos = 0;
for (int i=0, i<tipoProducto.lenght, i++) {
if (!tipoProducto[i].equals(null)) {
numeroProductos++;
}
}

Y usar numeroProductos en vez de tipoProducto.length en el for de arriba del todo

- Si los elementos null estan por el medio te convendria hacer algo similar a lo descrito arriba, controlando primero que el elemento que compares no sea null.

- La otra opción es usar arrays dinámicos, pero investigar eso te lo dejo a tí, que no te lo voy a dar todo hecho ;)

Recuerda, sólo te estoy dando ideas, hay muchas soluciones válidas posibles, todo depende de lo que tengas y quieras hacer.
  #5 (permalink)  
Antiguo 09/10/2009, 23:04
gvv
 
Fecha de Ingreso: abril-2005
Mensajes: 31
Antigüedad: 19 años
Puntos: 0
Respuesta: Comparar arreglo

Disculpen no me habia podido conectar y se me olvido dejar mis agradecimiento, lesagradesco mucho su ayuda me sirvio una gran cantidad
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 00:55.