What is the ComparableUtils.between method in Java?

Overview

The between() method is a staticA static method in Java is one that can be called without creating an object of the given class. method of the ComparableUtils class that returns a predicate for the passed value. The predicate checks whether the given value is in the specified range or not.

Note: Refer to the What is a Java predicate? shot to learn more about predicates in Java.

Refer to the code example given below to better understand this method.

Importing the ComparableUtils class

The definition of the ComparableUtils class can be found in the Apache Commons Lang package, which we can add to the Maven project by adding the following dependency to the pom.xml file:


<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
</dependency>

We can import the ComparableUtils class like this:


import org.apache.commons.lang3.compare.ComparableUtils;

Syntax


public static <A extends Comparable<A>> Predicate<A> between(final A b, final A c)

This method returns a predicate that checks whether the following condition is true or false:

[b <= a <= c] or [b >= a >= c]
  • b and c are the parameters of the between method.
  • a is the input to the predicate.
  • In this method, the range is inclusive.

Parameter values

  • final A b: This is the object that needs to be compared to the tested object.
  • final A c: This is the object that we compare the tested object with.

Return value

This method returns a predicate.

Example

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>Main</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

Explanation

The Maven dependency for the ComparableUtils class is present in the pom.xml file.

Main.java

  • Lines 1–2: We import the relevant classes.
  • Line 7: We define the integer value b.
  • Line 8: We define the integer value c.
  • Line 9: We pass b and c as parameters to the ComparableUtils.between() method. This returns a predicate called betweenPredicate.
  • Line 10: We define an integer test value called testVal.
  • Line 11: We use the test() method of the predicate to test whether the testVal value is in the range [b, c]. Then, we print the result of the comparison to the console.

Free Resources