2017-08-04 160 views
-8

我試圖制定出如下像這樣的模式在java中打印了一個ArrayList中的一種方式:如何在列表中打印列表?

輸入

<a, B, B, B, a, But, But, a, yes, a> // ArrayList 

輸出

<a, <B,B,B>, a, <But,But>, a, <yes>,a> // ArrayList within the ArrayList 

我需要將「a」之間的所有字符串打印在另一個列表中的單獨列表中。 但是,我完全難以理解我如何實現這一目標。請,有人可以幫我嗎?我曾嘗試在網上搜索類似的問題,但是,在搜索中正確標記它是非常困難的。

+1

讓我們忘掉Java或編程。你如何通過檢查來做到這一點,你看到了什麼?這將爲您提供如何編寫代碼的基礎。 –

+1

您是否嘗試過遍歷數組? –

+0

@ Y.Krishna請注意接受一個答案,如果它解決了你的問題,或者只是爲了感謝那些花時間回答你的人;) – azro

回答

0

您可能iterate在你的第一List,然後是的元素裏面是Iterable一個(SetList ......),你叫recursively同樣的方法此Iterable對象

public static void print(Iterable<Object> i) { 
    for (Object o : i){ 
     if (o instanceof Iterable) 
      print((Iterable) o); 
     else 
      System.out.println(o); 
    } 
} 

一個例子上如何使用:

public static void main(String[] args) { 
    List<Object> list = new ArrayList<>(); 
    list.add("a"); 
    list.add(Arrays.asList("tt", "tt", 76)); 
    list.add("a"); 
    list.add(65); 
    print(list); 
}