static <A, B> Map<A, B> toMapAccordingToHeader(Collection<B> row, L<A> header) { Iterator<B> it = iterator(row); new HashMap<A, B> map; for i over header: if (!it.hasNext()) break; else map.put(header.get(i), it.next()); ret map; }