Java oferuje różne techniki zarządzania kolekcjami danych, a jedną z często stosowanych praktyk jest tworzenie kolekcji tylko do odczytu. Celem jest zapewnienie, że dane zawarte w kolekcji nie będą modyfikowane po ich początkowym zdefiniowaniu. To podejście jest szczególnie przydatne w aplikacjach, gdzie ważne jest zachowanie niezmienności danych, aby zapewnić bezpieczeństwo i uniknąć nieprzewidzianych błędów. W tej lekcji przejdziemy przez proces tworzenia kolekcji tylko do odczytu w Javie, zilustrujemy to przykładem, w którym użyjemy Collections.unmodifiableCollection.
Przykład: Tworzenie kolekcji tylko do odczytu
Poniżej przedstawiam kompletny przykład kodu, który ilustruje, jak można przekształcić istniejącą kolekcję w wersję tylko do odczytu. Przykład zakłada użycie ArrayList jako bazowej kolekcji danych.
import java.util.ArrayList; // Import klasy ArrayList
import java.util.Collections; // Import klasy Collections
import java.util.Collection; // Import interfejsu Collection
public class ReadOnlyCollectionExample {
    public static void main(String[] args) {
        // Tworzenie nowej ArrayList
        ArrayList<String> list = new ArrayList<>();
        list.add("Jabłko"); // Dodawanie elementów
        list.add("Banana");
        list.add("Czereśnia");
        // Utworzenie niezmiennej kolekcji
        Collection<String> readOnlyCollection = Collections.unmodifiableCollection(list);
        System.out.println("Elementy kolekcji tylko do odczytu: " + readOnlyCollection);
        // Próba dodania elementu do kolekcji tylko do odczytu
        try {
            readOnlyCollection.add("Mango");
        } catch (UnsupportedOperationException e) {
            System.out.println("Nie można dodać elementu: kolekcja jest tylko do odczytu");
        }
    }
}
Komentarze do kodu:
- Importy: Na początku importujemy potrzebne klasy i interfejsy. ArrayListto nasza kolekcja bazowa,Collectionsto klasa pomocnicza, która oferuje metody do operacji na kolekcjach, aCollectionto interfejs reprezentujący ogólną kolekcję danych.
- Tworzenie ArrayList: Tworzymy ArrayListi dodajemy do niej kilka elementów, które reprezentują różne owoce.
- Utworzenie kolekcji tylko do odczytu: Za pomocą metody Collections.unmodifiableCollectionprzekształcamy nasząArrayListw wersję tylko do odczytu.
- Próba modyfikacji kolekcji: Próbujemy dodać nowy element do kolekcji tylko do odczytu, co skutkuje wyjątkiem UnsupportedOperationException, ponieważ operacje modyfikujące są zabronione.
Podsumowanie
Stworzenie kolekcji tylko do odczytu w Javie jest prostym sposobem na zapewnienie, że dane zawarte w kolekcji nie będą modyfikowane. Użycie metody Collections.unmodifiableCollection jest wygodne i efektywne, zapewniając, że jakiekolwiek próby modyfikacji takiej kolekcji zakończą się niepowodzeniem i rzuceniem wyjątku. To podejście jest szczególnie przydatne w sytuacjach, gdzie chcemy zapewnić bezpieczeństwo danych i uniknąć błędów spowodowanych nieoczekiwanymi zmianami.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

