რამდენად უსაფრთხოა HashMap-ში ელემენტზე წვდომა არარსებული გასაღებით?
sobes.tech AI
პასუხი AI-სგან
HashMap-да элементке жетүү үчүн, жок дегенде, ачкыч жок болсо, get() методу null кайтарат. Бул IndexOutOfBoundsException түрүндөгү ката пайда болбойт деген мааниде коопсуз, мисалы, массив же тизмеге туура эмес индекс менен кирүүдө.
Бирок, эгер кийинки код алынган натыйжаны null болбойт деп эсептесе (мисалы, бул объектте методдорду чакыруу учурунда), бул NullPointerException пайда кылышы мүмкүн.
Коопсуз иштөө үчүн сунушталат:
-
Натыйжаны
nullүчүн текшерүү:// null текшерүү мисалы Object value = hashMap.get(nonExistentKey); if (value != null) { // value колдонуу } else { // ачкыч жоктугун иштетүү } -
getOrDefault()сыяктуу, алдын ала маанини камсыз кылган же көбүрөөк коопсуз жүрүм-турумду камсыз кылган методдорду колдонуу (Java 8ден баштап жеткиликтүү):// getOrDefault колдонуу мисалы Object value = hashMap.getOrDefault(nonExistentKey, defaultValue); -
Java 8 менен келген
Optionalструктурасын колдонуу, эгер ылайыктуу болсо, мүмкүн болгон маанинин жоктугун так көрсөтүү үчүн:// Optional колдонуу мисалы Optional<Object> optionalValue = Optional.ofNullable(hashMap.get(nonExistentKey)); if (optionalValue.isPresent()) { // маанини колдонуу: optionalValue.get() }
Ушул жол менен, түздөн-түз get() аркылуу кирүү коопсуз, бирок null мааниси менен иштөө туура текшерүү жок болсо, NullPointerException пайда кылышы мүмкүн.