[英]Android/Java ArrayList<T> map to ArrayList<String>
我无法弄清楚如何将数组从存储类型映射到其他类型。 不幸的是我不能使用Java 8。
我有ArrayList<T>
,我想映射它,所以我将有ArrayList<String>
我怎样才能实现它?
假设T obj
有方法obj.toString()
我为谷歌做了准备。 我能找到的是如何将ArrayList<String>
转换为String[]
或将Map<K,V>
为ArrayList<V>
。 这不是我要找的东西:(
感谢您的帮助!
从某种类型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());
您可以使用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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.