fork download
  1. import java.util.ArrayDeque;
  2. import java.util.Arrays;
  3. import java.util.Deque;
  4. import java.util.ListIterator;
  5. import java.util.StringJoiner;
  6.  
  7. class Test {
  8. public static void main(String[] args) {
  9. Object[] o = new Object[] {1, 2, 3, new Object[] {4, new Object[] {5, 6}, 7}, 8};
  10. blah(o);
  11. }
  12.  
  13. static void blah(Object[] ar) {
  14. Deque<Object> stack = new ArrayDeque<>();
  15. stack.addAll(Arrays.asList(ar));
  16.  
  17. StringJoiner joiner = new StringJoiner(",");
  18.  
  19. while (!stack.isEmpty()) {
  20. Object val = stack.pop();
  21. if (val instanceof Object[]) {
  22. Object[] array = (Object[]) val;
  23. for (ListIterator<Object> it = Arrays.asList(array).listIterator(array.length); it.hasPrevious(); ) {
  24. stack.push(it.previous());
  25. }
  26. }
  27. else {
  28. joiner.add(val.toString());
  29. }
  30. }
  31.  
  32. System.out.println(joiner);
  33. }
  34. }
Success #stdin #stdout 0.04s 320576KB
stdin
Standard input is empty
stdout
1,2,3,4,5,6,7,8