Skip to content

Commit 5fa271f

Browse files
committed
BAEL-3209 - Adding elements in Java Array vs ArrayList
1 parent fd94e16 commit 5fa271f

4 files changed

Lines changed: 135 additions & 0 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.baeldung.array.operations;
2+
3+
public class ArrayOperations {
4+
5+
public static Integer[] addElementUsingPureJava(Integer[] srcArray, int elementToAdd) {
6+
Integer[] destArray = new Integer[srcArray.length + 1];
7+
8+
for (int i = 0; i < srcArray.length; i++) {
9+
destArray[i] = srcArray[i];
10+
}
11+
12+
destArray[destArray.length - 1] = elementToAdd;
13+
return destArray;
14+
}
15+
16+
public static int[] insertAnElementAtAGivenIndex(final int[] srcArray, int index, int newElement) {
17+
int[] destArray = new int[srcArray.length + 1];
18+
int j = 0;
19+
for (int i = 0; i < destArray.length - 1; i++) {
20+
21+
if (i == index) {
22+
destArray[i] = newElement;
23+
} else {
24+
destArray[i] = srcArray[j];
25+
j++;
26+
}
27+
}
28+
return destArray;
29+
}
30+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.baeldung.arraylist.operations;
2+
3+
import java.util.ArrayList;
4+
5+
public class ArrayListOperations {
6+
7+
public static Integer getAnIntegerElement(ArrayList<Integer> anArrayList, int index) {
8+
return anArrayList.get(index);
9+
}
10+
11+
public static void modifyAnIntegerElement(ArrayList<Integer> anArrayList, int index, Integer newElement) {
12+
anArrayList.set(index, newElement);
13+
}
14+
15+
public static void appendAnIntegerElement(ArrayList<Integer> anArrayList, Integer newElement) {
16+
anArrayList.add(newElement);
17+
}
18+
19+
public static void insertAnIntegerElementAtIndex(ArrayList<Integer> anArrayList, int index, Integer newElement) {
20+
anArrayList.add(index, newElement);
21+
}
22+
23+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.baeldung.array.operations;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.Assert.assertArrayEquals;
5+
import static org.assertj.core.api.Assertions.assertThat;
6+
7+
public class ArrayOperationsUnitTest {
8+
9+
@Test
10+
public void givenSourceArrayAndElement_whenAddElementUsingPureJavaIsInvoked_thenNewElementMustBeAdded() {
11+
Integer[] sourceArray = { 1, 2, 3, 4 };
12+
int elementToAdd = 5;
13+
14+
Integer[] destArray = ArrayOperations.addElementUsingPureJava(sourceArray, elementToAdd);
15+
16+
Integer[] expectedArray = { 1, 2, 3, 4, 5 };
17+
assertArrayEquals(expectedArray, destArray);
18+
}
19+
20+
@Test
21+
public void whenInsertAnElementAtAGivenIndexCalled_thenShiftTheFollowingElementsAndInsertTheElementInArray() {
22+
int[] expectedArray = { 1, 4, 2, 3, 0 };
23+
int[] anArray = new int[4];
24+
anArray[0] = 1;
25+
anArray[1] = 2;
26+
anArray[2] = 3;
27+
int[] outputArray = ArrayOperations.insertAnElementAtAGivenIndex(anArray, 1, 4);
28+
29+
assertThat(outputArray).containsExactly(expectedArray);
30+
}
31+
32+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.baeldung.arraylist.operations;
2+
3+
import java.util.ArrayList;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Test;
6+
import static org.assertj.core.api.Assertions.assertThat;
7+
8+
public class ArrayListOperationsUnitTest {
9+
10+
private ArrayList<Integer> anArrayList;
11+
12+
@BeforeEach
13+
public void setupDefaults() {
14+
anArrayList = new ArrayList<>();
15+
anArrayList.add(2);
16+
anArrayList.add(3);
17+
anArrayList.add(4);
18+
}
19+
20+
@Test
21+
public void whenGetAnIntegerElementCalled_thenReturnTheIntegerElement() {
22+
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 1);
23+
24+
assertThat(output).isEqualTo(3);
25+
}
26+
27+
@Test
28+
public void whenModifyAnIntegerElementCalled_thenModifyTheIntegerElement() {
29+
ArrayListOperations.modifyAnIntegerElement(anArrayList, 2, 5);
30+
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 2);
31+
32+
assertThat(output).isEqualTo(5);
33+
}
34+
35+
@Test
36+
public void whenAppendAnIntegerElementCalled_thenTheIntegerElementIsAppendedToArrayList() {
37+
ArrayListOperations.appendAnIntegerElement(anArrayList, 6);
38+
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, anArrayList.size() - 1);
39+
40+
assertThat(output).isEqualTo(6);
41+
}
42+
43+
@Test
44+
public void whenInsertAnIntegerAtIndexCalled_thenTheIntegerElementIsInseredToArrayList() {
45+
ArrayListOperations.insertAnIntegerElementAtIndex(anArrayList, 1, 10);
46+
Integer output = ArrayListOperations.getAnIntegerElement(anArrayList, 1);
47+
48+
assertThat(output).isEqualTo(10);
49+
}
50+
}

0 commit comments

Comments
 (0)