1. Overview
In this java 8 Streams series, We'll learn today what is Stream API mapToInt() method and when to use this. This method is used to convert the Stream to IntStream. Let us see it's syntax and few examples on mapToInt() method. This is also part of intermediate operations such as map() and filter() methods.
2. Syntax
IntStream mapToInt(ToIntFunction<? super T> mapper)
Returns an IntStream consisting of the results of applying the given function to the elements of this stream.
We will see now a few working examples using filter(), map(), forEach(), mapToInt() methods.
3. Stream mapToInt Examples
We will see now a few working examples using filter(), map(), forEach(), mapToInt() methods.
3.1 Finding the length of each string a collection
package com.java.w3schools.blog.java.program.to.java8.datetime;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class StreamMapToIntExample1 {
public static void main(String[] args) {
String[] stringArray = { "java", "program", "to", "com", "w3schools" };
// convert string array to Stream
Stream<String> stringStream = Stream.of(stringArray);
IntStream intStream = stringStream.mapToInt(value -> value.length());
intStream.forEach(s -> System.out.println(s));
}
}
Output:
Output:
Output:
Here we have used a parallel() method on stream. So output can not be expected in order. Every time you execute the above program, you will see the different order of ages.
In this article, We've seen how to convert a Stream to IntStream using mapToInt() method. This method is part of the java 8 Stream API. And also shown 3 working examples on this method.
4
7
2
3
9
3.2 Sleeping 1 second in processing and adding each value into List
package com.java.w3schools.blog.java.program.to.java8.stream;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class StreamMapToIntExample2 {
public static void main(String[] args) {
List<Integer> lengths = new ArrayList<>();
String[] stringArray = { "java", "program", "to", "com", "w3schools" };
// convert string array to Stream
Stream<String> stringStream = Stream.of(stringArray).peek(StreamMapToIntExample2::doSleeo);
IntStream intStream = stringStream.mapToInt(value -> value.length());
intStream.forEach(lengths::add);
lengths.forEach(n -> System.out.println(n));
}
private static void doSleeo(String value) {
try {
System.out.println("Sleeping for a second");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Output:
Sleeping for a second
Sleeping for a second
Sleeping for a second
Sleeping for a second
Sleeping for a second
4
7
2
3
9
3.3 Getting Student Ages into a List<Integer>
package com.java.w3schools.blog.java.program.to.java8.stream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.IntStream;
public class StreamMapToIntExample3 {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student(100, "Nani", 30));
students.add(new Student(101, "priyanka arul", 25));
students.add(new Student(102, "mohan", 35));
students.add(new Student(103, "vikram kumar", 45));
IntStream ageStream = students.stream().parallel().mapToInt(s -> s.getAge());
List<Integer> ages = Collections.synchronizedList(new ArrayList<>());
ageStream.forEach(ages::add);
ages.forEach(age -> System.out.println(age));
}
}
class Student {
private int id;
private String name;
private int age;
public Student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
Output:
Here we have used a parallel() method on stream. So output can not be expected in order. Every time you execute the above program, you will see the different order of ages.
35
45
25
30
4. Conclusion
In this article, We've seen how to convert a Stream to IntStream using mapToInt() method. This method is part of the java 8 Stream API. And also shown 3 working examples on this method.
0 Comments