JAVA-5683: Difference Between List.of and Arrays.asList (#12564)
Co-authored-by: Harpal Singh <harpal.singh@kaleyra.com>
This commit is contained in:
		
							parent
							
								
									d03fb7e217
								
							
						
					
					
						commit
						77671ade4b
					
				| @ -64,6 +64,23 @@ | ||||
|         <colt.version>1.2.0</colt.version> | ||||
|         <apache-commons.version>3.0</apache-commons.version> | ||||
|         <assertj.version>3.22.0</assertj.version> | ||||
|         <maven.compiler.source.version>17</maven.compiler.source.version> | ||||
|         <maven.compiler.target.version>17</maven.compiler.target.version> | ||||
|         | ||||
|     </properties> | ||||
|      | ||||
|     <build> | ||||
|         <plugins> | ||||
|             <plugin> | ||||
|                 <groupId>org.apache.maven.plugins</groupId> | ||||
|                 <artifactId>maven-compiler-plugin</artifactId> | ||||
|                 <version>${maven-compiler-plugin.version}</version> | ||||
|                 <configuration> | ||||
|                     <source>${maven.compiler.source.version}</source> | ||||
|                     <target>${maven.compiler.target.version}</target> | ||||
|                 </configuration> | ||||
|             </plugin> | ||||
|         </plugins> | ||||
|     </build> | ||||
| 
 | ||||
| </project> | ||||
| @ -0,0 +1,56 @@ | ||||
| package com.baeldung.list.creation; | ||||
| 
 | ||||
| import org.junit.jupiter.api.Test; | ||||
| 
 | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
| 
 | ||||
| import static org.assertj.core.api.Assertions.assertThat; | ||||
| import static org.junit.jupiter.api.Assertions.assertThrows; | ||||
| 
 | ||||
| class ArraysAsListUnitTest { | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayOfIntegersWhenCreatingAListUsingArraysAsListThenItWillHaveTheSameElementsInTheSameOrder() { | ||||
|         Integer[] array = new Integer[]{1, 2, 3, 4}; | ||||
|         List<Integer> list = Arrays.asList(array); | ||||
|         assertThat(list).containsExactly(1, 2, 3, 4); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnListOfIntegersCreatedUsingArraysAsListWhenChangingTheOriginalArrayTheReturnListWillAlsoChange() { | ||||
|         Integer[] array = new Integer[]{1, 2, 3}; | ||||
|         List<Integer> list = Arrays.asList(array); | ||||
|         array[0] = 1000; | ||||
|         assertThat(list.get(0)).isEqualTo(1000); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnListOfIntegersCreatedUsingArraysAsListWhenChangingTheReturnedListTheOriginalArrayWillAlsoChange() { | ||||
|         Integer[] array = new Integer[]{1, 2, 3}; | ||||
|         List<Integer> list = Arrays.asList(array); | ||||
|         list.set(0, 1000); | ||||
|         assertThat(array[0]).isEqualTo(1000); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayOfIntegersCreatedUsingArraysAsListWhenModifyingAnExistingElementThenModifyIt() { | ||||
|         List<Integer> list = Arrays.asList(1, 2, 3, 4); | ||||
|         list.set(1, 1000); | ||||
|         assertThat(list.get(1)).isEqualTo(1000); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayCreatedWithArraysAsListWhenAddingANewElementThenUnsupportedOperationExceptionIsThrown() { | ||||
|         List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); | ||||
|         assertThrows(UnsupportedOperationException.class, () -> list.add(6)); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayCreatedWithArraysAsListWhenRemovingAnExistingElementThenUnsupportedOperationExceptionIsThrown() { | ||||
|         List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); | ||||
|         assertThrows(UnsupportedOperationException.class, () -> list.remove(1)); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| @ -0,0 +1,51 @@ | ||||
| package com.baeldung.list.creation; | ||||
| 
 | ||||
| import org.junit.jupiter.api.Test; | ||||
| 
 | ||||
| import java.util.List; | ||||
| 
 | ||||
| import static org.assertj.core.api.Assertions.assertThat; | ||||
| import static org.junit.jupiter.api.Assertions.assertThrows; | ||||
| 
 | ||||
| class ListOfUnitTest { | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayOfStringWhenCreatingAListUsingItsValuesThenItWillHaveTheSameElementsInTheSameOrder() { | ||||
|         String[] array = new String[]{"one", "two", "three"}; | ||||
|         List<String> list = List.of(array); | ||||
|         assertThat(list).containsExactly("one", "two", "three"); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnListOfStringCreatedUsingListOfWhenChangingTheOriginalArrayTheReturnListWontChange() { | ||||
|         String[] array = new String[]{"one", "two", "three"}; | ||||
|         List<String> list = List.of(array); | ||||
|         array[0] = "thousand"; | ||||
|         assertThat(list.get(0)).isEqualTo("one"); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayCreatedWithListOfWhenAddingANewElementThenUnsupportedOperationExceptionIsThrown() { | ||||
|         List<String> list = List.of("one", "two", "three"); | ||||
|         assertThrows(UnsupportedOperationException.class, () -> list.add("four")); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayCreatedWithListOfWhenRemovingAnExistingElementThenUnsupportedOperationExceptionIsThrown() { | ||||
|         List<String> list = List.of("one", "two", "three"); | ||||
|         assertThrows(UnsupportedOperationException.class, () -> list.remove("two")); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayCreatedWithListOfWhenModifyingAnExistingElementThenUnsupportedOperationExceptionIsThrown() { | ||||
|         List<String> list = List.of("one", "two", "three"); | ||||
|         assertThrows(UnsupportedOperationException.class, () -> list.set(1, "four")); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     void givenAnArrayContainingNullElementWhenUsingItToCreateListThenNullPointerExceptionIsThrown() { | ||||
|         assertThrows(NullPointerException.class, () -> List.of("one", null, "two")); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| @ -37,7 +37,6 @@ | ||||
|         <module>core-java-collections-list</module> | ||||
|         <module>core-java-collections-list-2</module> | ||||
|         <module>core-java-collections-list-3</module> | ||||
|         <module>core-java-collections-list-4</module> | ||||
|         <module>core-java-collections-maps</module> | ||||
|         <module>core-java-collections-maps-2</module> | ||||
|         <module>core-java-collections-maps-3</module> | ||||
|  | ||||
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							| @ -1161,6 +1161,7 @@ | ||||
|                  <!-- <module>core-java-modules/core-java-16</module> --> <!-- uses preview features, to be decided how to handle --> | ||||
|                  <!-- <module>core-java-modules/core-java-17</module> --> <!-- uses preview features, to be decided how to handle --> | ||||
|                  <module>core-java-modules/core-java-collections-set</module> | ||||
|                  <module>core-java-modules/core-java-collections-list-4</module> | ||||
|                  <module>core-java-modules/core-java-collections-maps-4</module> | ||||
|                  <module>core-java-modules/core-java-date-operations-1</module> | ||||
|                  <module>core-java-modules/core-java-datetime-conversion</module> | ||||
| @ -1234,6 +1235,7 @@ | ||||
|                 <!-- <module>core-java-modules/core-java-16</module> --> <!-- uses preview features, to be decided how to handle --> | ||||
|                 <!-- <module>core-java-modules/core-java-17</module> --> <!-- uses preview features, to be decided how to handle --> | ||||
|                 <module>core-java-modules/core-java-collections-set</module> | ||||
|                 <module>core-java-modules/core-java-collections-list-4</module> | ||||
|                 <module>core-java-modules/core-java-collections-maps-4</module> | ||||
|                 <module>core-java-modules/core-java-date-operations-1</module> | ||||
|                 <module>core-java-modules/core-java-datetime-conversion</module> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user