您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java的Stream API中,有许多常用的中间操作(Intermediate Operations),这些操作可以对流中的元素进行过滤、映射、排序等处理。以下是一些常用的中间操作:
filter(Predicate<? super T> predicate)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
map(Function<? super T, ? extends R> mapper)
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<Integer> nameLengths = names.stream()
.map(String::length)
.collect(Collectors.toList());
sorted(Comparator<? super T> comparator)
List<Person> people = Arrays.asList(new Person("Alice", 30), new Person("Bob", 25));
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparing(Person::getAge))
.collect(Collectors.toList());
distinct()
List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
limit(long maxSize)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> firstThreeNumbers = numbers.stream()
.limit(3)
.collect(Collectors.toList());
skip(long n)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> remainingNumbers = numbers.stream()
.skip(2)
.collect(Collectors.toList());
flatMap(Function<? super T, Stream<? extends R>> mapper)
List<List<Integer>> listOfLists = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5),
Arrays.asList(6)
);
List<Integer> flatList = listOfLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
peek(Consumer<? super T> action)
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> upperCaseNames = names.stream()
.peek(name -> System.out.println("Processing: " + name))
.map(String::toUpperCase)
.collect(Collectors.toList());
anyMatch(Predicate<? super T> predicate)
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
boolean hasEvenNumber = numbers.stream()
.anyMatch(n -> n % 2 == 0);
allMatch(Predicate<? super T> predicate)
List<Integer> numbers = Arrays.asList(2, 4, 6, 8);
boolean allEvenNumbers = numbers.stream()
.allMatch(n -> n % 2 == 0);
这些中间操作可以组合使用,以实现复杂的流处理逻辑。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。