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

回到顶部