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

4
我不知道如何将一个存储类型为数组的对象映射到其他类型。不幸的是,我不能使用Java 8。
我有一个ArrayList,我想将它映射成ArrayList,怎么实现呢?
假设T obj有方法obj.toString()。
我在Google上搜索过,但是只能找到如何将ArrayList转换为String[]或Map转换为ArrayList的方法。这不是我要找的 :(
感谢您的帮助!

1
ArrayList<String> accumulator = new ArrayList<>(); for(T obj : someList){ accumulator.add(obj.toString()); } - Ousmane D.
如果您可以使用streams,那么请将以下的程序代码进行翻译:someList.stream().map(Object::toString).collect(Collectors.toList()) - Andy Turner
不要忘记处理“null”对象。 - tsolakp
2个回答

4

将某个类型 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());

安卓支持Java 8吗? - Luiggi Mendoza
谢谢!我正在寻找像这样的答案 :) - Shial
@LuiggiMendoza 我不使用安卓系统,所以不清楚。 - Ousmane D.
从技术上讲,它应该是 Object obj - shmosel
@LuiggiMendoza 我认为最近的版本是可以的。 - shmosel

-4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接