Hello Admin, I have been trying to understand the difference between the two static methods List.of()[Java9] vs List.copyOf()[Java10]. I don't seem to find any difference. I am running Java 11.
These are my observations:
List.of()
1. List<Integer> numbers = List.of(1,2,3); this code is okay, however List<Integer> numbers = List.of(1,2,3, null); results in nullpointerexception
2. List<Integer> numbers = List.of(1,2,3); numbers.add(4); this results in unsupportedoperationexception
3. List<Integer> numbers = List.of() generates an empty list
List.of()
1. List<Integer> numbers = List.copyOf(List.of(1,2,3)); this code is okay, however List<Integer> numbers = List.of(1,2,3, null); results in nullpointerexception
2. List<Integer> numbers = List.copyOf(List.of(1,2,3)); numbers.add(4); this results in unsupportedoperationexception
3. List<Integer> numbers = List.copyOf(List.of()) generates an empty list
List.of() vs List.copyOf()
Moderator: admin
-
- Posts: 5
- Joined: Thu Oct 08, 2020 7:23 am
- Contact:
-
- Site Admin
- Posts: 10322
- Joined: Fri Sep 10, 2010 9:26 pm
- Contact:
Re: List.of() vs List.copyOf()
Well, the difference is that List.copyOf takes a Collection as an argument and creates a new unmodiable list containing all the elements of the original collection, while List.of takes multiple individual elements as arguments!
Both return an unmodifiable list, so, in that respect they are same.
Both return an unmodifiable list, so, in that respect they are same.
If you like our products and services, please help us by posting your review here.
Who is online
Users browsing this forum: No registered users and 1 guest