import java.util.LinkedList; import java.util.List; public final class FlattenUtil { public static List flatten(List list) { List retVal = new LinkedList(); flatten(list, retVal); return retVal; } public static void flatten(List fromTreeList, List toFlatList) { for (Object item : fromTreeList) { if (item instanceof List) { flatten((List) item, toFlatList); } else { toFlatList.add(item); } } } }