Коллекции unmodifiableCollection () метод в Java с примерами
Метод unmodifiableCollection () класса java.util.Collections используется для возврата неизменяемого представления указанной коллекции. Этот метод позволяет модулям предоставлять пользователям доступ «только для чтения» к внутренним коллекциям. Операции запроса к возвращаемой коллекции «читают» в указанную коллекцию и попытки изменить возвращенную коллекцию, напрямую или через ее итератор, приводят к исключению UnsupportedOperationException.
Возвращенная коллекция не передает hashCode и операции equals в резервную коллекцию, но полагается на методы equals и hashCode объекта. Это необходимо для сохранения контрактов этих операций в случае, если вспомогательная коллекция является набором или списком.
Возвращенная коллекция будет сериализуемой, если указанная коллекция сериализуема.
Синтаксис:
общедоступный статический <T> Коллекция <T> unmodifiableCollection (Коллекция <? extends T> c)
Параметры: этот метод принимает коллекцию в качестве параметра, для которого должно быть возвращено неизменяемое представление.
Возвращаемое значение: этот метод возвращает неизменяемое представление указанной коллекции.
Ниже приведены примеры, иллюстрирующие метод unmodifiableCollection ().
Example 1:
// Java program to demonstrate // unmodifiableCollection() method // for <Character> Value import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating object of ArrayList<Character> List<Character> list = new ArrayList<Character>(); // populate the list list.add( "X" ); list.add( "Y" ); // printing the list System.out.println( "Initial list: " + list); // getting unmodifiable list // using unmodifiableCollection() method Collection<Character> immutablelist = Collections .unmodifiableCollection(list); } catch (UnsupportedOperationException e) { System.out.println( "Exception thrown : " + e); } } } |
Initial list: [X, Y]
Example 2: For UnsupportedOperationException
// Java program to demonstrate // unmodifiableCollection() method // for UnsupportedOperationException import java.util.*; public class GFG1 { public static void main(String[] argv) throws Exception { try { // creating object of ArrayList<Character> List<Character> list = new ArrayList<Character>(); // populate the list list.add( "X" ); list.add( "Y" ); // printing the list System.out.println( "Initial list: " + list); // getting unmodifiable list // using unmodifiableCollection() method Collection<Character> immutablelist = Collections .unmodifiableCollection(list); // Adding element to new Collection System.out.println( "
Trying to modify" + " the unmodifiableCollection" ); immutablelist.add( "Z" ); } catch (UnsupportedOperationException e) { System.out.println( "Exception thrown : " + e); } } } |
Initial list: [X, Y] Trying to modify the unmodifiableCollection Exception thrown : java.lang.UnsupportedOperationException