Skip to content

Commit e4ee272

Browse files
committed
Adding Unit Testing and bugfix ArrayList8
1 parent 1e933eb commit e4ee272

File tree

2 files changed

+464
-23
lines changed

2 files changed

+464
-23
lines changed

src/main/java/CodingUtils/ArrayList8.java

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
.
99
. The ArrayList8 Class was Coded by : Alexandre BOLOT
1010
.
11-
. Last Modified : 02/12/17 13:16
11+
. Last Modified : 17/12/17 22:47
1212
.
1313
. Contact : [email protected]
1414
...............................................................................................................................*/
@@ -36,18 +36,25 @@ public boolean addIf (E value, Predicate<? super E> filter)
3636
return filter.test(value) && add(value);
3737
}
3838

39-
public boolean addAllIf (Collection<? extends E> c, Predicate<? super E> filter)
39+
public int addAllIf (Collection<? extends E> collection, Predicate<? super E> filter)
4040
{
41-
for (E e : c)
42-
{
43-
if (!addIf(e, filter)) return false;
44-
}
41+
Objects.requireNonNull(collection);
42+
Objects.requireNonNull(filter);
43+
44+
ArrayList8<E> paramList = new ArrayList8<>();
45+
paramList.addAll(collection);
4546

46-
return true;
47+
ArrayList8<E> sublist = paramList.subList(filter);
48+
49+
this.addAll(sublist);
50+
51+
return sublist.size();
4752
}
4853

4954
public boolean contains (Predicate<? super E> filter)
5055
{
56+
Objects.requireNonNull(filter);
57+
5158
for (E e : this)
5259
{
5360
if (filter.test(e)) return true;
@@ -58,6 +65,8 @@ public boolean contains (Predicate<? super E> filter)
5865

5966
public int countIf (Predicate<? super E> filter)
6067
{
68+
Objects.requireNonNull(filter);
69+
6170
int count = 0;
6271

6372
for (E e : this)
@@ -70,22 +79,26 @@ public int countIf (Predicate<? super E> filter)
7079

7180
public ArrayList8<E> subList (Predicate<? super E> filter)
7281
{
73-
if (this.isEmpty()) return this;
82+
Objects.requireNonNull(filter);
7483

7584
ArrayList8<E> newList = new ArrayList8<>();
7685

77-
newList.addAllIf(this, filter);
86+
this.forEach(e -> newList.addIf(e, filter));
7887

7988
return newList;
8089
}
8190

8291
public Optional<E> findAny (Predicate<? super E> filter)
8392
{
93+
Objects.requireNonNull(filter);
94+
8495
return this.isEmpty() ? Optional.empty() : subList(filter).stream().findAny();
8596
}
8697

8798
public Optional<E> findFirst (Predicate<? super E> filter)
8899
{
100+
Objects.requireNonNull(filter);
101+
89102
for (E e : this)
90103
{
91104
if (filter.test(e)) return Optional.of(e);
@@ -96,27 +109,31 @@ public Optional<E> findFirst (Predicate<? super E> filter)
96109

97110
public Optional<E> max (Comparator<? super E> comparator)
98111
{
112+
Objects.requireNonNull(comparator);
113+
99114
if (this.isEmpty()) return Optional.empty();
100115

101116
E max = this.getRandom();
102117

103118
for (E e : this)
104119
{
105-
if (comparator.compare(max, e) > 0) max = e;
120+
if (comparator.compare(e, max) > 0) max = e;
106121
}
107122

108123
return Optional.of(max);
109124
}
110125

111126
public Optional<E> min (Comparator<? super E> comparator)
112127
{
128+
Objects.requireNonNull(comparator);
129+
113130
if (this.isEmpty()) return Optional.empty();
114131

115132
E min = this.get(0);
116133

117134
for (E e : this)
118135
{
119-
if (comparator.compare(min, e) < 0) min = e;
136+
if (comparator.compare(e, min) < 0) min = e;
120137
}
121138

122139
return Optional.of(min);

0 commit comments

Comments
 (0)