我不知道如何将数组从存储类型映射到其他类型。不幸的是,我不能使用Java8。
我有ArrayList<T>,我想映射它,所以我将有ArrayList<String>,我如何才能实现它?
假设T obj有obj.toString()方法
我在谷歌上搜索过了。我所能找到的就是如何将ArrayList<String>转换为String[]或将Map<K,V>转换为ArrayList<V>。这不是我想要的:
感谢您的帮助!
发布于 2018-01-10 07:31:24
从某种类型的T映射到String的流解决方案如下:
ArrayList<String> resultSet =
someList.stream()
.map(Object::toString) // or ClassName::toString
.collect(Collectors.toCollection(ArrayList::new));等同于:
ArrayList<String> accumulator = new ArrayList<>();
for(T obj : someList)
accumulator.add(obj.toString());发布于 2018-01-10 07:29:26
您可以使用Guava Lists.transform()函数。
Function<T, String> objToString =
new Function<T, String>() {
public String apply(T t) { return t != null ? t.toString() : null; }
};
List<String> newList = Lists.transform(srcList, objToString);https://stackoverflow.com/questions/48178049
复制相似问题