Skip to content

Commit b43787b

Browse files
committed
modifying ListOfThree class
1 parent 5a1a468 commit b43787b

2 files changed

Lines changed: 23 additions & 33 deletions

File tree

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
package com.baeldung.accessmodifiers.publicmodifier;
22

33
import java.util.AbstractList;
4+
import java.util.Arrays;
45

56
public class ListOfThree<E> extends AbstractList<E> {
67

7-
private static final int MAX_LENGTH = 3;
8-
private int size;
9-
private Object[] elements = new Object[MAX_LENGTH];
8+
private static final int LENGTH = 3;
9+
private Object[] elements;
10+
11+
public ListOfThree(E[] data) {
12+
if(data == null
13+
|| data.length != LENGTH)
14+
throw new IllegalArgumentException();
15+
16+
this.elements = Arrays.copyOf(data, data.length); //shallow copy
17+
18+
}
1019

1120
@Override
1221
@SuppressWarnings("unchecked")
13-
public E get(int index) {
22+
public E get(int index) {
1423
return (E)elements[index];
1524
}
16-
17-
@Override
18-
public boolean add(E e) {
19-
20-
elements[size] = e;
21-
size++;
22-
23-
return true;
24-
}
2525

2626
@Override
2727
public int size() {
28-
return size;
28+
return LENGTH;
2929
}
3030

3131
}

core-java-modules/core-java-lang-oop-2/src/test/java/com/baeldung/accessmodifiers/PublicAccessModifierUnitTest.java

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,21 @@ public void whenConnectingToH2_connectionInstanceIsReturned() throws SQLExceptio
4848
@Test
4949
public void whenCreatingCustomList_concreteAndInheritedMethodsWork() {
5050

51-
List<String> list1 = new ListOfThree<String>();
52-
list1.add("zero"); //inherited implementation
53-
list1.add("one");
54-
list1.add("two");
51+
String[] dataSet1 = new String[] {"zero", "one", "two"};
5552

56-
//our implemented methods
57-
assertEquals("zero", list1.get(0));
58-
59-
assertThrows(ArrayIndexOutOfBoundsException.class, () -> {
60-
list1.get(4);
61-
});
62-
63-
assertThrows(ArrayIndexOutOfBoundsException.class, () -> {
64-
list1.add("three");
65-
});
53+
List<String> list1 = new ListOfThree<String>(dataSet1);
6654

55+
//our implemented methods
56+
assertEquals("one", list1.get(1));
6757
assertEquals(3, list1.size());
6858

69-
list1.indexOf("one"); //inherited implementation
59+
//inherited implementations
60+
assertEquals(1, list1.indexOf("one"));
7061

71-
List<String> list2 = new ListOfThree<String>();
72-
list2.add("zero");
73-
list2.add("one");
62+
String[] dataSet2 = new String[] {"two", "zero", "one"};
63+
List<String> list2 = new ListOfThree<String>(dataSet2);
7464

75-
assertTrue(list1.containsAll(list2)); //inherited implementation
65+
assertTrue(list1.containsAll(list2));
7666
}
7767

7868
}

0 commit comments

Comments
 (0)