Mam więc listę ciągów, których potrzebuję do utworzenia instancji za każdym razem, gdy wywoływana jest usługa. Czy warto przekonwertować List<String>
na HashSet<String>
, a następnie sprawdzić, czy ciąg jest w hashSet?Korzyści z konwertowania listy <String> na HashSet <String> Java
np.
HashSet<String> services = new HashSet<String>((List<String>) services);
wiem sprawdzania ciąg na liście jest O (n) oraz czek na ciąg w Hashset wynosi O (1). Myślę, że konwersja to prawdopodobnie O (n).
Czy istnieje przewaga wydajności nad przekształceniem, jeśli nie przeszukuję listy więcej niż kilka razy?
To wątpliwe, że zauważysz wymierną poprawę wydajności, szczególnie jeśli, jak wspomniałeś, przeszukujesz strukturę tylko kilka razy. –
Ponieważ musisz mimo wszystko odwiedzić każdy element w zestawie, aby dodać go do zestawu, równie dobrze możesz po prostu zawrzeć połączenie na liście. –