Java tutorial
//package com.java2s; /** * (c) 2009-2014 Peter Wullinger * * $Id$ * * Use, modification and restribution of this file are covered by the * terms of the Artistic License 2.0. * * You should have received a copy of the license terms in a file named * "LICENSE" together with this software package. * * Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT * HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR * A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE * EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO * COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT * OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. **/ import java.util.Collection; import java.util.Iterator; public class Main { public static String recursiveDeepToString(final Collection<?> collection) { final StringBuilder sb = new StringBuilder(3 * collection.size()); sb.append("["); final Iterator<?> iter = collection.iterator(); if (iter.hasNext()) { final Object item = iter.next(); if (item instanceof Collection) { final Collection<?> subCollection = (Collection<?>) item; sb.append(recursiveDeepToString(subCollection)); } else sb.append(item); } while (iter.hasNext()) { final Object item = iter.next(); sb.append(", "); if (item instanceof Collection) { final Collection<?> subCollection = (Collection<?>) item; sb.append(recursiveDeepToString(subCollection)); } else sb.append(item); } sb.append("]"); return sb.toString(); } }