diff --git a/exercises/practice/flatten-array/.meta/config.json b/exercises/practice/flatten-array/.meta/config.json index 938167ee9..8b521fdd6 100644 --- a/exercises/practice/flatten-array/.meta/config.json +++ b/exercises/practice/flatten-array/.meta/config.json @@ -6,6 +6,7 @@ "aadityakulkarni", "FridaTveit", "jackattack24", + "jagdish-15", "jmrunkle", "jtigger", "kytrinyx", diff --git a/exercises/practice/flatten-array/.meta/src/reference/java/Flattener.java b/exercises/practice/flatten-array/.meta/src/reference/java/Flattener.java index 0c3e5e7a3..5cff9efd1 100644 --- a/exercises/practice/flatten-array/.meta/src/reference/java/Flattener.java +++ b/exercises/practice/flatten-array/.meta/src/reference/java/Flattener.java @@ -1,28 +1,17 @@ import java.util.ArrayList; -import java.util.Collections; import java.util.List; -final class Flattener { +class Flattener { - List flatten(final List nestedList) { - if (nestedList.isEmpty()) { - return new ArrayList<>(); - } else { - final List result = new ArrayList(); - - final Object head = nestedList.get(0); - final List tail = nestedList.subList(1, nestedList.size()); - - if (head instanceof List) { - result.addAll(flatten((List) head)); - } else { - result.add(head); + List flatten(List list) { + List flattenedList = new ArrayList<>(); + for (Object element: list) { + if (element instanceof List listAsElement) { + flattenedList.addAll(flatten(listAsElement)); + } else if (element != null) { + flattenedList.add(element); } - - result.addAll(flatten(tail)); - result.removeAll(Collections.singleton(null)); - return result; } + return flattenedList; } - } diff --git a/exercises/practice/flatten-array/src/main/java/Flattener.java b/exercises/practice/flatten-array/src/main/java/Flattener.java index c2759577f..69db9b0b4 100644 --- a/exercises/practice/flatten-array/src/main/java/Flattener.java +++ b/exercises/practice/flatten-array/src/main/java/Flattener.java @@ -2,7 +2,7 @@ class Flattener { - List flatten(List list) { + List flatten(List list) { throw new UnsupportedOperationException("Delete this statement and write your own implementation."); }