Sobes.tech
Junior

HashMap-də mövcud olmayan açar ilə elementə daxil olmaq nə qədər təhlükəsizdir?

sobes.tech Süni İntellekt

AI-dan cavab

HashMap içində mövcud olmayan açar ilə elementə müraciət edərkən, get() metodu null qaytarır. Bu, IndexOutOfBoundsException tipli istisnanın yaranmaması mənasında təhlükəsizdir, məsələn, yanlış indekslə array və ya siyahıya müraciətdə olduğu kimi.

Ancaq, əgər sonrakı kod alınan nəticənin null olmayacağını fərz edirsə (məsələn, bu obyekt üzərində metodlar çağırmaq kimi), bu, NullPointerException-a səbəb ola bilər.

Təhlükəsiz işləmə üçün tövsiyə olunur:

  • Nəticəni null üçün yoxlamaq:

    // Null yoxlaması nümunəsi
    Object value = hashMap.get(nonExistentKey);
    if (value != null) {
        // value istifadə et
    } else {
        // Açarın olmaması halını idarə et
    }
    
  • getOrDefault() kimi, standart dəyər və ya daha təhlükəsiz davranış təmin edən metodlardan istifadə etmək (Java 8-dən etibarən mövcuddur):

    // getOrDefault istifadə nümunəsi
    Object value = hashMap.getOrDefault(nonExistentKey, defaultValue);
    
  • Java 8 ilə gələn Optional quruluşundan istifadə etmək, əgər uyğundursa, mümkün dəyər yoxluğunu daha aydın göstərmək üçün:

    // Optional istifadə nümunəsi
    Optional<Object> optionalValue = Optional.ofNullable(hashMap.get(nonExistentKey));
    if (optionalValue.isPresent()) {
        // Dəyərdən istifadə: optionalValue.get()
    }
    

Beləliklə, get() metoduna birbaşa müraciət təhlükəsizdir, lakin alınan null dəyəri ilə düzgün yoxlama olmadan işləmək NullPointerException-a səbəb ola bilər.