lots of exercises in java... from https://github.com/exercism/java

Flattener.java 724B

1234567891011121314151617181920212223242526272829
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.List;
  4. final class Flattener {
  5. List flatten(final List nestedList) {
  6. if (nestedList.isEmpty()) {
  7. return new ArrayList<>();
  8. } else {
  9. final List result = new ArrayList();
  10. final Object head = nestedList.get(0);
  11. final List tail = nestedList.subList(1, nestedList.size());
  12. if (head instanceof List) {
  13. result.addAll(flatten((List) head));
  14. } else {
  15. result.add(head);
  16. }
  17. result.addAll(flatten(tail));
  18. result.removeAll(Collections.singleton(null));
  19. return result;
  20. }
  21. }
  22. }