首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到ArrayList<String>的Android/Java ArrayList<T>映射

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

Stack Overflow用户
提问于 2018-01-10 07:16:52
回答 2查看 1.7K关注 0票数 4

我不知道如何将数组从存储类型映射到其他类型。不幸的是,我不能使用Java8。

我有ArrayList<T>,我想映射它,所以我将有ArrayList<String>,我如何才能实现它?

假设T objobj.toString()方法

我在谷歌上搜索过了。我所能找到的就是如何将ArrayList<String>转换为String[]或将Map<K,V>转换为ArrayList<V>。这不是我想要的:

感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-10 07:31:24

从某种类型的T映射到String的流解决方案如下:

代码语言:javascript
复制
ArrayList<String> resultSet =  
           someList.stream()
                   .map(Object::toString) // or ClassName::toString
                   .collect(Collectors.toCollection(ArrayList::new));

等同于:

代码语言:javascript
复制
ArrayList<String> accumulator = new ArrayList<>();     
for(T obj : someList)
    accumulator.add(obj.toString());
票数 4
EN

Stack Overflow用户

发布于 2018-01-10 07:29:26

您可以使用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)

代码语言:javascript
复制
    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);
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48178049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档