簡體   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