Java 8 Comparación de Cadenas

Prabhakaran Manickkavachagam:

Tengo dos lista de cadenas. Quiero comprobar si cualquier cadena de una lista está disponible en otra lista. Han utilizado a continuación enfoque que falla.

Por favor, hágamelo saber un mejor enfoque

List<String> mylist = Arrays.asList(stringArray1);
List<String> items = Arrays.asList(stringArray2);

return mylist.stream().anyMatch(t->items.stream().anyMatch(t::contains));
Jacob G.:

Si desea encontrar si cualquier elemento mylistexiste en items, primero se puede convertir itemsen una Set:

Set<String> setOfItems = new HashSet<>(items);

A continuación, puede simplemente iterativa sobre mylisty comprobar si algún elemento está contenido en setOfItems.

mylist.stream().anyMatch(setOfItems::contains);

Esto trajo su O(n * k)problema a O(n + k)donde ny kson los tamaños de mylisty items, respectivamente.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=118878&siteId=1
Recomendado
Clasificación