繁体   English   中英

Android / Java ArrayList <T> 映射到ArrayList <String>

[英]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()函数。

https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/Lists.html#transform(java.util.List%2C%20com.google.common.base。功能)

    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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM