package com.github.agiledon.sisyphus.util; import java.util.List; public final class ListUtil { private ListUtil() {} public static <E> List<List<E>> partition(List<E> target, Predicates<E> predicate) { List<List<E>> partitions = com.google.common.collect.Lists.newArrayList(); List<E> elementList = com.google.common.collect.Lists.newArrayList(); for (E element : target) { if (predicate.apply(element)) { partitions.add(elementList); elementList = com.google.common.collect.Lists.newArrayList(); } else { elementList.add(element); } } if (elementList.size() > 0) { partitions.add(elementList); } return partitions; } }