How to get a slice of a stream in Java

2 Answers

0 votes
import java.util.List;
import java.util.Arrays;
import java.util.stream.Stream;
 
public class MyClass
{
    public static<T> Stream<T> GetSlice(Stream<T> stream, int fromIndex, int toIndex) {
        return stream
                .skip(fromIndex)
                .limit(toIndex - fromIndex + 1);
    }
 
    public static void main(String[] args)
    {
        List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);

        Stream<Integer> stream = list.stream();
 
        Stream<Integer> slice = GetSlice(stream, 3, 7);
        
        slice.forEach(System.out::println);
    }
}



/*
run:

3
4
5
6
7

*/

 



answered Mar 18, 2023 by avibootz
0 votes
import java.util.List;
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.stream.Collectors;
 
public class MyClass
{
    public static<T> Stream<T> GetSlice(Stream<T> stream, int fromIndex, int toIndex) {
        return stream
                .collect(Collectors.toList())
                .subList(fromIndex, toIndex + 1)
                .stream();
    }
 
    public static void main(String[] args)
    {
        List<Integer> list = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);

        Stream<Integer> stream = list.stream();
 
        Stream<Integer> slice = GetSlice(stream, 3, 7);
        
        slice.forEach(System.out::println);
    }
}



/*
run:

3
4
5
6
7

*/

 



answered Mar 18, 2023 by avibootz

Related questions

2 answers 356 views
2 answers 349 views
2 answers 402 views
2 answers 236 views
236 views asked Oct 5, 2023 by avibootz
1 answer 151 views
...