Java - Comparacion de elementos entre dos vectores

 
Vista:

Comparacion de elementos entre dos vectores

Publicado por Bisan (12 intervenciones) el 26/07/2002 10:41:00
Tengo dos Vectores. Lo que quiero es: comparar los dos vectores y ver si tienen los mismos elementos. El problema es que los vectores pueden tener los mismos elementos pero en distinto orden.

Me imagino que por cada elemento del vector V1 habra que recorrerse todo el vector V2 hasta encontrarlo.
Si el elemento buscado esta en V2 habra que borrarlo. Pero hay un problema!! Si borro el elemento de V2 quedará modificado y yo no quiero modificarlo, por lo que antes de empezar a trabajar
con los vectores habra que hacer una copia de los vectores, para así poder modificar lo que se quiera. Como se haría...??

Hay algun algoritmo ya implementado para hacer esta comparación de elementos entre vectores?? Como podría hacerla??

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Comparacion de elementos entre dos vectores

Publicado por Oscar (661 intervenciones) el 26/07/2002 20:04:32
Desconosco si hay algo ya implementado.
Pero se me hace mas eficiente que primero ordenes los dos vetores y luego los compares.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comparacion de elementos entre dos vectores

Publicado por Bisan (12 intervenciones) el 27/07/2002 18:34:45
No puedo ordenar los vectores, necesito hacerlo sin ordenarlos...!!!!

Alguien me podría echar una mano??

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Comparacion de elementos entre dos vectores

Publicado por Oscar (661 intervenciones) el 28/07/2002 02:16:54
El metodo siguiente, compara dos vectores:

bool compare(Vector v1, Vector v2){
for(int i=0; i<v1.size(), i++){
if(!v1.contains(v2.get(i)))
return false;
}
return true;
}

En esta funcion se asume que ambos vectores contienen la misma cantidad de elementos. Podrias poner algo asi:
if(v1.size() != v2.size()) return false;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mejor opcion

Publicado por Oscar (661 intervenciones) el 28/07/2002 02:19:48
La clase Vector tiene un metodo containsAll, el cual puede recibir cualquier clase que implemente la interfaz Collection(Vector es una de ellas). Asi que solo tienes que hacer:
vector.containsAll(vector2);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mejor opcion

Publicado por Ferran (4 intervenciones) el 30/07/2002 11:14:51
El problema es que containsAll solo compara si estan todos los elementos de uno en otro... no da informacion de los que estan y los que no estan, verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mejor opcion

Publicado por Oscar (661 intervenciones) el 31/07/2002 06:02:32
vector1.containsAll(vector2);

compara si todos los elementos de vector2 estan contenidos en vector1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar