static Map> listToMapOfListsWithKeyDetector(IPred keyDetector, L l, A preludeKey) { new LinkedHashMap> map; L currentList = null; fOr (A a : l) if (keyDetector.get(a)) map.put(a, currentList = new L); else { if (currentList == null) map.put(preludeKey, currentList = new L); currentList.add(a); } ret map; }