Ho un ArrayList<LinkedHashSet<String>> setOfStrings
per esempio questo arraylist internamente è composto come:
positionX[hello,car,three,hotel,beach]
positionY[.....]
...
Voglio trovare auto all'interno di questa struttura dati, quindi l'ho fatto
for (Iterator<LinkedHashSet<String>> iterator = setOfStrings.iterator(); iterator.hasNext();) {
LinkedHashSet<String> subSet = iterator.next();
if (subSet.contains("hotel"))
System.out.println("found");
}
Il per iterare sull'intero arrayList
e la complessità nel caso peggiore è O (n), ma sono confuso sulla complessità del metodo contains()
di set. In base a javadocs
questo metodo viene eseguito in tempo costante , ma ho sentito che in alcuni casi la complessità potrebbe diventare O(n)
. Detto questo, non sono sicuro della complessità di questo algoritmo di snippet.
Qualcuno può fornirmi una spiegazione?