LINUX.ORG.RU

История изменений

Исправление r, (текущая версия) :

компилябельный пример (оба):

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static com.google.common.collect.Maps.filterValues;
import static com.google.common.collect.Maps.transformValues;
import static java.util.Map.Entry;

public class Test {
	private Map<Class<?>, Map<String, List<String>>> compressDependencies(
			Map<Class<?>, Map<String, List<String>>> dependencies ) {

		final Map<Class<?>, Map<String, List<String>>> result = new HashMap<>();
		for( Entry<Class<?>, Map<String, List<String>>> clazz : dependencies.entrySet() ) {

			final Map<String, List<String>> desc = new HashMap<>();
			for( Entry<String, List<String>> d : clazz.getValue().entrySet() ) {
				List<String> value = d.getValue();
				if( !value.isEmpty() ) desc.put( d.getKey(), value );
			}
			result.put( clazz.getKey(), desc );
		}
		return result;
	}

	private Map<Class<?>, Map<String, List<String>>> compressDependencies2(
			Map<Class<?>, Map<String, List<String>>> dependencies ) {
		return transformValues( dependencies, map -> filterValues( map, v -> !v.isEmpty() ) );
	}
}


Исходная версия r, :

компилябельный пример (оба):

import com.google.common.collect.Maps;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static java.util.Map.Entry;

public class Test {
	private Map<Class<?>, Map<String, List<String>>> compressDependencies(
			Map<Class<?>, Map<String, List<String>>> dependencies ) {

		final Map<Class<?>, Map<String, List<String>>> result = new HashMap<>();
		for( Entry<Class<?>, Map<String, List<String>>> clazz : dependencies.entrySet() ) {

			final Map<String, List<String>> desc = new HashMap<>();
			for( Entry<String, List<String>> d : clazz.getValue().entrySet() ) {
				List<String> value = d.getValue();
				if( !value.isEmpty() ) desc.put( d.getKey(), value );
			}
			result.put( clazz.getKey(), desc );
		}
		return result;
	}

	private Map<Class<?>, Map<String, List<String>>> compressDependencies2(
			Map<Class<?>, Map<String, List<String>>> dependencies ) {
		return Maps.transformValues( dependencies, map -> Maps.filterValues( map, v -> !v.isEmpty() ) );
	}
}