// Copyright 2014 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package marmot.util;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListUtils {
public static <T> List<T> complement(List<List<T>> items, int i) {
List<T> complement = new LinkedList<T>();
for (int j = 0; j < items.size(); j++) {
if (i != j) {
complement.addAll(items.get(j));
}
}
return complement;
}
public static <T> List<List<T>> chunk(List<T> items, int num_chunks) {
List<List<T>> chunks = new ArrayList<List<T>>(num_chunks);
int items_per_chunk = items.size() / num_chunks;
if (items_per_chunk == 0)
items_per_chunk = 1;
List<T> chunk = new ArrayList<T>(items_per_chunk);
for (T item : items) {
chunk.add(item);
if (chunk.size() == items_per_chunk) {
chunks.add(chunk);
if (chunks.size() < num_chunks)
chunk = new LinkedList<T>();
}
}
assert chunks.size() == num_chunks;
return chunks;
}
}