Java LongFunction

Introduction

In Java, the LongFunction interface is a functional interface that represents a function that accepts a long-valued argument and produces a result. It is part of the java.util.function package and is commonly used for operations that transform or process long values into other types.

Table of Contents

  1. What is LongFunction?
  2. Methods and Syntax
  3. Examples of LongFunction
  4. Real-World Use Case
  5. Conclusion

1. What is LongFunction?

LongFunction is a functional interface that takes a long as input and returns a result of a specified type. It is useful for scenarios where long values need to be converted or processed into other forms.

2. Methods and Syntax

The main method in the LongFunction interface is:

  • R apply(long value): Applies this function to the given argument and returns a result.

Syntax

LongFunction<R> longFunction = (long value) -> {
    // operation on value
    return result;
};

3. Examples of LongFunction

Example 1: Converting Long to String

import java.util.function.LongFunction;

public class LongToStringExample {
    public static void main(String[] args) {
        // Define a LongFunction that converts a long to a string
        LongFunction<String> longToString = (value) -> "Number: " + value;

        String result = longToString.apply(123456789L);
        System.out.println(result);
    }
}

Output:

Number: 123456789

Example 2: Calculating the Square

import java.util.function.LongFunction;

public class SquareExample {
    public static void main(String[] args) {
        // Define a LongFunction that calculates the square of a long
        LongFunction<Long> square = (value) -> value * value;

        long result = square.apply(100L);
        System.out.println("Square: " + result);
    }
}

Output:

Square: 10000

4. Real-World Use Case: Formatting File Sizes

In applications, LongFunction can be used to format file sizes (in bytes) into a human-readable string.

import java.util.function.LongFunction;

public class FileSizeFormatter {
    public static void main(String[] args) {
        // Define a LongFunction to format file sizes
        LongFunction<String> formatFileSize = (size) -> {
            if (size < 1024) return size + " B";
            int exp = (int) (Math.log(size) / Math.log(1024));
            char pre = "KMGTPE".charAt(exp - 1);
            return String.format("%.1f %sB", size / Math.pow(1024, exp), pre);
        };

        String formattedSize = formatFileSize.apply(123456789L);
        System.out.println("Formatted Size: " + formattedSize);
    }
}

Output:

Formatted Size: 117.7 MB

Conclusion

The LongFunction interface is a practical tool in Java for transforming long values into other types. It is particularly useful in scenarios requiring data conversion or processing. Using LongFunction can lead to cleaner and more efficient code, especially in functional programming contexts.

Comments