Java8 stream 怎么反转列表,刚学,求指点
有没有办法在 stream 上反转
一道leetcode题来着,我想用 stream 看看能不能一行代码完成他的。
回答:
其实可以
final List<Integer> list = Stream.of(1, 2, 3, 4) .sorted((pre, next) -> -1)
.collect(Collectors.toList());
System.out.println(list);
完成反转,上面的都过于复杂了
回答:
可以翻转列表但是很麻烦,其实你这个问题直接反向遍历数组就完事了,甚至不需要用stream
public class Sf1010000041051104 { public static void main(String[] args) {
ArrayList<String> collect = Stream.of("1", "2", "3").collect(Collector.of(
ArrayList::new,
(objects, s) -> {
objects.add(0, s);
},
(objects, objects2) -> {
objects.addAll(objects2);
return objects;
}));
System.out.println(collect);
}
public static List<String> test(String str) {
String[] ss = str.split(" ");
ArrayList<String> result = new ArrayList<>(ss.length);
for (int i = ss.length - 1; i >= 0; i--) {
String s = ss[i];
if (!s.isEmpty()) {
result.add(s);
}
}
return result;
}
}
回答:
使用java工具类java.util.Collections中的自带方法Collections.reverse()
以下是java.util.Collections.reverse()方法的声明
public static void reverse(List<?> list)
1
看到参数是一个list,而并非是数组int[],所以需要先新建一个ArrayList存放原数组originArray的元素
public void arrayReverse1() { reverseArray = new int[length];
ArrayList arraylist = new ArrayList();
for (int i = 0; i < length; i++) {
arraylist.add(originArray[i]); //存放元素
}
Collections.reverse(arraylist); //使用方法进行逆序
//完成逆序后,可以保存到新数组reverseArray
for (int i = 0; i < length; i++) {
reverseArray[i] = (int) arraylist.get(i);
}
}
来源 https://www.cnblogs.com/it-ts...
以上是 Java8 stream 怎么反转列表,刚学,求指点 的全部内容, 来源链接: utcz.com/p/944093.html