【问题标题】:How can I convert ArrayList<String> to ArrayList<Object> using .collect(Collectors.toList() in Java stream如何在 Java 流中使用 .collect(Collectors.toList() 将 ArrayList<String> 转换为 ArrayList<Object>
【发布时间】:2021-02-13 05:03:22
【问题描述】:
【问题讨论】:
标签:
java
arraylist
java-stream
【解决方案1】:
这比您想象的要容易。只需调用addAll。
List<String> strList = new ArrayList<>();
strList.add("hello");
strList.add("world");
List<Object> genericList =new ArrayList<>();
genericList.addAll(strList);
System.out.println(genericList); //--> [hello,world]
小心,因为这也可能很危险......
List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
genericList.addAll(intList); //yeah, ok
boolean[] boolArray = new boolean[5];
genericList.add(boolArray); //why not
genericList.add(false); //no worries, it will cast it to Boolean
genericList.add(genericList); //so inclusive!
System.out.println(genericList);
//diversity badge achieved!-> [hello,world,1,2,[Z@232204a1,false,(this Collection)]
【解决方案2】:
如果你想使用 lambda,你可以使用map 方法。
喜欢这个
Stream.of("A", "B").map(e -> (Object) e).collect(Collectors.toList())
【解决方案3】:
你不能“转换”它(即改变它的类型),但你可以:
List<Object> list = new ArrayList<>(myStringList);