int shardCount) {
List<ListMultimap<Bytes, V>> out = Lists.newArrayListWithCapacity(shardCount);
for (int i = 0; i < shardCount; i++) {
out.add(ArrayListMultimap.<Bytes, V>create());
}
Sharder sharder = new HashingSharder(shardCount);
for (KeyValue<Bytes, V> pair : in) {
out.get(sharder.getShardForKey(ByteBuffer.wrap(pair.getKey().bytes)))
.put(pair.getKey(), pair.getValue());
}
return out;
}