public static <E> List<E> concatView(List<List<? extends E>> lists) {
        if(lists.isEmpty()) {
            return Collections.emptyList();
        } else {
            return ConcatView.create(lists);
        }
    }
public static <E> List<E> concatView(List<List<? extends E>> lists) {
        if(lists.isEmpty()) {
            return Collections.emptyList();
        } else {
            return ConcatView.create(lists);
        }
    }
public static < E > List < E > concatView ( List < List < ? extends E > > lists ) { if ( lists . isEmpty ( ) ) { return Collections . emptyList ( ) ; } else { return ConcatView . create ( lists ) ; } }
Returns a list that is a concatenation of the given lists. The returned
list is a view of the underlying lists, without copying the elements.
The returned list is unmodifiable. Modifications to underlying lists
will be visible through the concatenation view.
Returns a list that is a concatenation of the given lists . The returned list is a view of the underlying lists without copying the elements . The returned list is unmodifiable . Modifications to underlying lists will be visible through the concatenation view .