История изменений
Исправление
wota,
(текущая версия)
:
private Map<Class<?>, Map<String, String[]>> compressDependencies(
Map<Class<?>, Map<String, List<String>>> dependencies) {
final Map<Class<?>, Map<String, String[]>> result =
new FastMap<Class<?>, Map<String, String[]>>(dependencies.size());
final Set<Entry<Class<?>, Map<String, List<String>>>> entrySet = dependencies.entrySet();
for (Entry<Class<?>, Map<String, List<String>>> entry : entrySet) {
final Map<String, List<String>> value = entry.getValue();
final Map<String, String[]> desc = new FastMap<String, String[]>(value.size());
final Set<Entry<String, List<String>>> subEntries = value.entrySet();
for (Entry<String, List<String>> valueEntry : subEntries) {
final List<String> list = valueEntry.getValue();
if (list != null && !list.isEmpty()) {
desc.put(valueEntry.getKey(), list.toArray(new String[list.size()]));
}
}
result.put(entry.getKey(), desc);
}
return result;
}
кстати, LOL, сразу не посмотрел, что оно делает, вот аналог на плюсах:
copy_if(
depends.begin(), depends.end(),
inserter( result, result.begin() ),
[]( auto entry ) { return entry.second.size(); } ) );
и да, тут сразу видно то, за что действительно стоит покритиковать стандартную библиотеку - есть универсальные варианты, но нет упрощенных, можно было и так сделать:
copy_if(
depends, result,
[]( auto entry ) { return entry.second.size(); } ) );
Исправление
wota,
:
private Map<Class<?>, Map<String, String[]>> compressDependencies(
Map<Class<?>, Map<String, List<String>>> dependencies) {
final Map<Class<?>, Map<String, String[]>> result =
new FastMap<Class<?>, Map<String, String[]>>(dependencies.size());
final Set<Entry<Class<?>, Map<String, List<String>>>> entrySet = dependencies.entrySet();
for (Entry<Class<?>, Map<String, List<String>>> entry : entrySet) {
final Map<String, List<String>> value = entry.getValue();
final Map<String, String[]> desc = new FastMap<String, String[]>(value.size());
final Set<Entry<String, List<String>>> subEntries = value.entrySet();
for (Entry<String, List<String>> valueEntry : subEntries) {
final List<String> list = valueEntry.getValue();
if (list != null && !list.isEmpty()) {
desc.put(valueEntry.getKey(), list.toArray(new String[list.size()]));
}
}
result.put(entry.getKey(), desc);
}
return result;
}
кстати, LOL, сразу не посмотрел, что оно делает, вот аналог на плюсах:
copy_if(
depends.begin(), depends.end(),
inserter( result, result.begin() ),
[]( auto entry ) { return entry.second.size(); } ) );
и да, тут сразу видно то, за что действительно стоит покритиковать стандартную библиотеку - есть универсальные варианты, но нет упрощенных, можно было и так сделать:
copy_if(
depends, result,
[]( auto entry ) { return entry.second.size(); } ) );
Исходная версия
wota,
:
private Map<Class<?>, Map<String, String[]>> compressDependencies(
Map<Class<?>, Map<String, List<String>>> dependencies) {
final Map<Class<?>, Map<String, String[]>> result =
new FastMap<Class<?>, Map<String, String[]>>(dependencies.size());
final Set<Entry<Class<?>, Map<String, List<String>>>> entrySet = dependencies.entrySet();
for (Entry<Class<?>, Map<String, List<String>>> entry : entrySet) {
final Map<String, List<String>> value = entry.getValue();
final Map<String, String[]> desc = new FastMap<String, String[]>(value.size());
final Set<Entry<String, List<String>>> subEntries = value.entrySet();
for (Entry<String, List<String>> valueEntry : subEntries) {
final List<String> list = valueEntry.getValue();
if (list != null && !list.isEmpty()) {
desc.put(valueEntry.getKey(), list.toArray(new String[list.size()]));
}
}
result.put(entry.getKey(), desc);
}
return result;
}
кстати, LOL, сразу не посмотрел, что оно делает, вот аналог на плюсах:
copy_if(
depends.begin(), depends.end(),
inserter( result, result.begin(),
[]( auto entry ) { return entry.second.size(); } ) );
и да, тут сразу видно то, за что действительно стоит покритиковать стандартную библиотеку - есть универсальные варианты, но нет упрощенных, можно было и так сделать:
copy_if(
depends, result,
[]( auto entry ) { return entry.second.size(); } ) );