Pages

Footer Pages

Spring Boot

Java String API

Java Conversions

Kotlin Programs

Kotlin Conversions

Java Threads Tutorial

Java 8 Tutorial

Sunday, December 29, 2019

Java 8 Stream mapToInt(ToIntFunction) Method Examples | Convert Stream to IntStream

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.

Java 8 Stream mapToInt(ToIntFunction) Method Examples | Convert Stream to IntStream






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.

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:


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.


No comments:

Post a Comment

Please do not add any spam links in the comments section.