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>
|
||||
</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