Esto es principalmente una cuestión de rendimiento. Tengo una lista maestra de todos los usuarios que existen en una matriz de cadenas AllUids. También tengo una lista de todos los usuarios con fecha de finalización que existen en una matriz String EndUids.Java: comparando dos matrices de cadenas y eliminando los elementos que existen en ambas matrices
Estoy trabajando en Java y mi objetivo es eliminar cualquier usuario que exista en la matriz de fecha final de la lista maestra AllUids. Sé que PHP tiene una función llamada array_diff.
Tenía curiosidad si Java tiene algo que pueda comparar dos matrices y eliminar elementos que sean similares en ambas. Mi objetivo es el rendimiento aquí, por eso le pregunté sobre una función incorporada. No quiero agregar ningún paquete especial.
Pensé en escribir una función recursiva, pero parece que será ineficiente. Hay miles de usuarios en ambas listas. Para existir en la lista de fecha de finalización, debe existir en la lista AllUids, es decir, hasta que se elimine.
Ejemplo:
String[] AllUids = {"Joe", "Tom", "Dan", "Bill", "Hector", "Ron"};
String[] EndUids = {"Dan", "Hector", "Ron"};
Funcionalidad Busco:
String[] ActiveUids = AllUids.RemoveSimilar(EndUids);
ActiveUids se vería así:
{"Joe", "Tom", "Bill"}
Gracias a todos, Obviamente, puede llegar a bucles pero no estoy seguro de que sea eficiente. Esto es algo que funcionará en las máquinas de producción todos los días.
CollectionUtils no funcionó para mí, pero si me llama ActiveUids.removeall (EndUids), que funcionó a la perfección. Terminé cambiando la forma en que almacenaba las cuerdas. Creé un hashset usando lo siguiente: HashSet ActiveUids = new HashSet (); Gracias a todos por su ayuda. ¡Esto era exactamente lo que estaba buscando! –
user84786
Genial, creo que el modo ListUtils es mucho más limpio ... – Jon
¿Se puede usar en Android? : S – Ewoks