對象是否有在Java中的任何實用功能轉換List<Object[]>
到List<Object>
轉換列表列出在Java中
回答
你可以自己隨便寫一個:
public static<T> List<T> append (List<T[]> input) {
List<T> res = new ArrayList<T>();
for(T[] subarr : input) {
if(subarr != null) {
int n = subarr.length;
for(int i = 0; i < n; i++) {
res.add(subarr[i]);
}
}
}
return res;
}
功能追加不同的陣列和陣列null
忽略,null
元素然而沒有。因此如果輸入是[null,[a,b],[null,null],[c,null,d],null]
。輸出是[a,b,null,null,c,null,d]
。
'新清單
@Tom:對,修改它。在C#中,'List
爲什麼要允許空數組?空數組看起來很可能表示程序中的一個bug ...? –
號
你爲什麼不只是寫自己的功能?這可能比問這個問題並等待答案要快。
不,沒有辦法直接爲你做這個。你可以寫一個嵌套的循環或使用流API的flatMap如下:
List<Object> flat = objArrs.stream()
.flatMap(Stream::of)
.collect(Collectors.toList());
在Java 8,你可以用流做到這一點:
List<Object[]> list = ...
List<Object> l = list.stream()
.flatMap(arr -> Stream.of(arr))
.collect(Collectors.toList());
正如其他人已經說過,有沒有效用和使用老同學 for循環自己創建一個並不難,例如:
public List<Object> flatten(List<Object[]> source)
{
// if (source == null) return null; // which check you use it up to you
List<Object> result = new ArrayList<Object>();
if (source == null) return result; // Personally I like this check
for (Object[] array: source)
{
if (array == null) continue; // skip nulls
for (Object object: array)
{
result.add(object);
}
}
return result;
}
也許你可以把它變成它的通用對象(提升)...... –
- 1. 轉換表列出在Excel
- 2. 轉換列表中列出的元素
- 3. 在Python中轉換列表輸出
- 4. 轉換空單Java列表
- 5. 轉換列表以二維陣列(JAVA)
- 6. 轉換列表:字典,其值的列表中列出一個
- 7. 轉換列表列出詮釋
- 8. 轉換列表列出使用LINQ
- 9. Java泛型 - 轉換列表<object>列出<T>
- 10. 將DataModel轉換爲Java中的列表
- 11. 如何轉換列表<Object>列出<Dog>在Java中
- 12. 轉換陣列在Java
- 13. 轉換列表,列表
- 14. 轉換列表<DataRow>在C#.NET中列出<UserEntity>
- 15. 將Array列表轉換爲Java中的鏈接列表
- 16. 將字符串列表轉換爲java中的BigDecimal列表
- 17. 不能轉換列表,列表錯誤在Java泛型
- 18. 轉換列表
- 19. 轉換列表
- 20. 轉換列表
- 21. 轉換列表
- 22. 轉換的Json列出的Java
- 23. 在python中將列表和列表的列表轉換爲csv
- 24. 在單個列表中轉換列表的列表
- 25. 轉換列表到列表在Python
- 26. 轉換的字符串列表,列出字符串列表的
- 27. 如何轉換列表列表地圖列出地圖
- 28. 轉換集列出
- 29. 轉換列表到「換位」列表
- 30. 在java列表中列出數組列表中的值
描述你的問題正確 –
的問題是AMB含糊不清:如果一個數組包含兩個或多個元素會發生什麼?請舉一個例子。 –
作爲該功能的結果,您會期待什麼? –