public class Table<T,R> {
public static <T,R> Map<R,T> mapBy(Class clazz, Function<T,R>
function){
Object o = GameLibraryData.mapByClassName.get(clazz.getSimpleName());
if(o instanceof List){
List<T> dataList = (List<T>)o;
return mapBy(dataList, function);
}
return null;
}
public static <T,R> Map<R,T> mapBy(List<T> dataList, Function<T,R>
function){
return dataList.stream().collect(Collectors.toMap(function, a -> a, (k1, k2) -> k1));
}
public static void main(String[] args) {
List<GameLibraryFileReader.Test> testList = new ArrayList<>();
testList.add(new GameLibraryFileReader.Test("test",1));
testList.add(new GameLibraryFileReader.Test("test2",2));
testList.add(new GameLibraryFileReader.Test("test3",3));
testList.add(new GameLibraryFileReader.Test("test4",4));
testList.add(new GameLibraryFileReader.Test("test5",5));
Map<Integer, GameLibraryFileReader.Test> integerTestMap = Table.mapBy(testList, GameLibraryFileReader.Test::getAge);
Map<String, GameLibraryFileReader.Test> stringTestMap = Table.mapBy(testList, GameLibraryFileReader.Test::getName);
System.out.println();
}
}
可以自由的根据 list 中的对象转为map,方便从list中获取对应的数据,而且可以传入任意list存储对象的字段,获取传入字段分类好的map