2013-05-31 1 views
-4

Моя проблема немного проста, но я не могу окунуться в нее (новый в java).печать массива с произвольными уровнями вложенности, в java

У меня есть список, и я хочу его распечатать.

Теперь проблема заключается в некоторых элементах списка, которые могут быть перечислены сами.

Например:

["foo",1,2,[22,23],[1,[22,[23]]] ... ] 

Я хочу напечатать это в глубине моды, что означает, что выход будет:

"foo", 1,2,22,23, 1,22,23.. 

Как это сделать в Java

+3

Вы попробовали только позвонить .toString() в список? он также вызывает строку на всех ее элементах. –

+0

Вы уверены, что это Java? Это выглядит Pythonesque (динамически типизированный список). –

+0

@CaptainSkyhawk Это может быть «Список » на Java. –

ответ

1

Вы можете сделать это recursivly, проверяя, если текущий элемент снова список и с помощью toString -метод, который каждый объект в Java имеет.

public void printList(List<Object> a) 
{ 
    for (Iterator<Object> it = a.iterator(); it.hasNext();) { 
     Object item = it.next(); 
     if (item instanceof List) printList((List<Object>) item); 
     else System.out.print(item + ", "); 
    } 
} 
1

ли это рекурсивно. Псевдо-код:

function printRecursively (list): 
    for item in list: 
     if item is Array: 
      printRecursively(item) 
     else: 
      printItem(item) 
+1

- это код Java? – maazza

+1

@maazza Как я ясно сказал, это псевдокод. – poke

Смежные вопросы