Chciałbym zrobić coś, używając wartości mapy dla danego klucza, tylko jeśli mapa zawiera dany klucz. Naiwnie napiszę:Działanie sprawdzania mapy
Map<String, String> myMap = ...;
if(myMap.containsKey(key)) {
String value = myMap.get(key);
// Do things with value
}
Powyższy kod wygląda na łatwy do zrozumienia, ale z punktu widzenia wydajności nie byłoby lepiej następujący kod?
Map<String, String> myMap = ...;
String value = myMap.get(key);
if(value != null) {
// Do things with value
}
W drugim fragmencie nie podoba się fakt, że value
jest zadeklarowany w szerszym zakresie.
Jak zmienia się wydajność poszczególnych przypadków w odniesieniu do wdrożenia mapy?
Uwaga: Załóżmy, że wartości null nie są dopuszczone na mapie.
Dlaczego martwisz się o wydajność tutaj? –
@SotiriosDelimanolis Myślę, że właśnie wprowadził prosty scenariusz. Wyobraź sobie, że poniższy kod zostanie wykonany w pętli z milionami iteracji. –
Jeśli nie robisz tego miliony razy, lub jest w jakimś hotspocie, nie martwię się o wydajność. – Yuushi