gpt4 book ai didi

Java流删除前三个元素

转载 作者:行者123 更新时间:2023-11-29 09:42:58 24 4
gpt4 key购买 nike

我有按学生 id 排序的对象列表:

List<Student> arraylist = new ArrayList<>();
arraylist.add(new Student(1, "Chaitanya", 26));
arraylist.add(new Student(2, "Chaitanya", 26));
arraylist.add(new Student(3, "Rahul", 24));
arraylist.add(new Student(4, "Ajeet", 32));
arraylist.add(new Student(5, "Chaitanya", 26));
arraylist.add(new Student(6, "Chaitanya", 26));

我想使用 stream 并仅删除学生 age 等于 26 的前三个元素。你能帮我解决这个问题吗?

最佳答案

您可以使用 filterskip 作为:

List<Student> finalList = arraylist.stream()
.filter(a -> a.getAge() == 26) // filters the students with age 26
.skip(3) // skips the first 3
.collect(Collectors.toList());

这将导致列出年龄等于 26 岁的 Student,同时跳过此类学生的前三个出现。


另一方面,如果你只想从完整列表中排除这三个学生,你也可以这样做:

List<Student> allStudentsExcludingFirstThreeOfAge26 = Stream.concat(
arraylist.stream().filter(a -> a.getAge() != 26),
arraylist.stream().filter(a -> a.getAge() == 26).skip(3))
.collect(Collectors.toList());

请注意,这可能会导致更改列表的原始顺序。

关于Java流删除前三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53836926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com