BAEL-3209 - Adding elements in Java Array vs ArrayList
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
package com.baeldung.array.operations;
|
||||||
|
|
||||||
|
public class ArrayOperations {
|
||||||
|
|
||||||
|
public static Integer[] addElementUsingPureJava(Integer[] srcArray, int elementToAdd) {
|
||||||
|
Integer[] destArray = new Integer[srcArray.length + 1];
|
||||||
|
|
||||||
|
for (int i = 0; i < srcArray.length; i++) {
|
||||||
|
destArray[i] = srcArray[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
destArray[destArray.length - 1] = elementToAdd;
|
||||||
|
return destArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] insertAnElementAtAGivenIndex(final int[] srcArray, int index, int newElement) {
|
||||||
|
int[] destArray = new int[srcArray.length + 1];
|
||||||
|
int j = 0;
|
||||||
|
for (int i = 0; i < destArray.length - 1; i++) {
|
||||||
|
|
||||||
|
if (i == index) {
|
||||||
|
destArray[i] = newElement;
|
||||||
|
} else {
|
||||||
|
destArray[i] = srcArray[j];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return destArray;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.baeldung.arraylist.operations;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class ArrayListOperations {
|
||||||
|
|
||||||
|
public static Integer getAnIntegerElement(ArrayList<Integer> anArrayList, int index) {
|
||||||
|
return anArrayList.get(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void modifyAnIntegerElement(ArrayList<Integer> anArrayList, int index, Integer newElement) {
|
||||||
|
anArrayList.set(index, newElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void appendAnIntegerElement(ArrayList<Integer> anArrayList, Integer newElement) {
|
||||||
|
anArrayList.add(newElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void insertAnIntegerElementAtIndex(ArrayList<Integer> anArrayList, int index, Integer newElement) {
|
||||||
|
anArrayList.add(index, newElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.baeldung.array.operations;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import static org.junit.Assert.assertArrayEquals;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
public class ArrayOperationsUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenSourceArrayAndElement_whenAddElementUsingPureJavaIsInvoked_thenNewElementMustBeAdded() {
|
||||||
|
Integer[] sourceArray = { 1, 2, 3, 4 };
|
||||||
|
int elementToAdd = 5;
|
||||||
|
|
||||||
|
Integer[] destArray = ArrayOperations.addElementUsingPureJava(sourceArray, elementToAdd);
|
||||||
|
|
||||||
|
Integer[] expectedArray = { 1, 2, 3, 4, 5 };
|
||||||
|
assertArrayEquals(expectedArray, destArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInsertAnElementAtAGivenIndexCalled_thenShiftTheFollowingElementsAndInsertTheElementInArray() {
|
||||||
|
int[] expectedArray = { 1, 4, 2, 3, 0 };
|
||||||
|
int[] anArray = new int[4];
|
||||||
|
anArray[0] = 1;
|
||||||
|
anArray[1] = 2;
|
||||||
|
anArray[2] = 3;
|
||||||
|
int[] outputArray = ArrayOperations.insertAnElementAtAGivenIndex(anArray, 1, 4);
|
||||||
|
|
||||||
|
assertThat(outputArray).containsExactly(expectedArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package com.baeldung.arraylist.operations;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
public class ArrayListOperationsUnitTest {
|
||||||
|
|
||||||
|
private ArrayList<Integer> anArrayList;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void setupDefaults() {
|
||||||
|
anArrayList = new ArrayList<>();
|
||||||
|
anArrayList.add(2);
|
||||||
|
anArrayList.add(3);
|
||||||
|
anArrayList.add(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenGetAnIntegerElementCalled_thenReturnTheIntegerElement() {
|
||||||
|
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 1);
|
||||||
|
|
||||||
|
assertThat(output).isEqualTo(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenModifyAnIntegerElementCalled_thenModifyTheIntegerElement() {
|
||||||
|
ArrayListOperations.modifyAnIntegerElement(anArrayList, 2, 5);
|
||||||
|
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 2);
|
||||||
|
|
||||||
|
assertThat(output).isEqualTo(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenAppendAnIntegerElementCalled_thenTheIntegerElementIsAppendedToArrayList() {
|
||||||
|
ArrayListOperations.appendAnIntegerElement(anArrayList, 6);
|
||||||
|
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, anArrayList.size() - 1);
|
||||||
|
|
||||||
|
assertThat(output).isEqualTo(6);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenInsertAnIntegerAtIndexCalled_thenTheIntegerElementIsInseredToArrayList() {
|
||||||
|
ArrayListOperations.insertAnIntegerElementAtIndex(anArrayList, 1, 10);
|
||||||
|
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 1);
|
||||||
|
|
||||||
|
assertThat(output).isEqualTo(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user