ToIntFunction in Java 8 With Code Sample

Functional interfaces and lambda expressions are one of the major features in Java 8. Java provides a lot of in-built functioal interfaces in the java.util.function package. One of these is the ToIntFunction. In this blog post, I will be explaining how thisfunctional interface works. To know more about functional interfaces, you can refer to this blog post.

Edit

What is ToIntFunction

ToIntFunction is an in-built functional interface in the java.util.Function package. It accepts an argument of any data type but returns a result of type int.

It is a primitive specialization of the Function interface that always returns a result of int type. So IntFunction<T> is similar to Function<T,Integer>

It has an applyAsInt method. It then applies the logic in this method on the argument passed in to produce the int result.

ToIntFunction Sample Code

The following code snippet demonstrates this interface:

ToIntFunction<String> strLengthProducer = str -> str.length();int len = strLengthProducer.applyAsInt("Hello!");System.out.println("Length:"+len);

Here, strLengthProducer accepts a String input.  The code uses a lambda expression that simply returns the length of the input String.

This code prints the following output:

Length:6

Note that you need to use a lambda expression that returns an int value while implementing this interface. Otherwise, the code will cause a compilation error.

Difference between IntFunction and ToIntFunction

There is another functional interface IntFunction in the java.util.Function package. This interface accepts an int argument and returns a result of any data type. ToIntFunction on the other hand, accepts an argument of any data type and returns an int result. So the difference between them is that IntFunction accepts an argument of int data type while ToIntFunction produces an int result.

Conclusion

So in this article, we took a look at the ToIntFunction interface. This interface is a specialization of the Function interface. It accepts an argument of any data type and returns a result of int data type.

Comments

Popular posts from this blog

How to use logging in SpringBoot with code samples

Python While Loop with code samples

How to convert a List to a Set