code: public static <T, K, C> void loadChildren(Collection<T> list,
  			Function<T, K> keyMapper,
  			Function<T, Collection<C>> childCollectionMapper,
  			Function<Collection<K>, Collection<C>> loader,
  			Function<C, K> childKeyMapper) {
  		if (list == null || list.size() == 0)
  			return;
  
  		HashMap<K, T> map = toHashMap(list, keyMapper);
  		loader.apply(map.keySet()).forEach(
  				p -> childCollectionMapper.apply(
  						map.get(childKeyMapper.apply(p))).add(p));
  	}
docs: 用于为Collection中的父对象加载子对象。子对象加载应以父对象的key的集合为条件，父对象中应该有一个集合用于存放子对象。
  
  例如父对象Parent有属性id和集合childs，子对象Child有属性parentId。假设
  loader.load()可以根据parentId加载子对象集合，对于类型为List<Parent>的parents：
  
  <pre>
  loadChild(parents, Parent::getId, Parent::getChilds, ids -&gt; loader.load(ids),
  Child::getParentId);
  </pre>