How to return 2 values from a Java method?

There are a few ways you can return multiple values from a Java method:

  1. Return an array: You can create an array that contains the values you want to return, and then return the array. For example:
public static int[] getValues() {
  return new int[] {1, 2};

// usage:
int[] values = getValues();
  1. Return a custom object: You can create a custom object that contains the values you want to return, and then return an instance of that object. For example:
public class Values {
  private int value1;
  private int value2;

  public Values(int value1, int value2) {
    this.value1 = value1;
    this.value2 = value2;

  // getters and setters

public static Values getValues() {
  return new Values(1, 2);

// usage:
Values values = getValues();
  1. Use a third-party library: There are several third-party libraries that allow you to return multiple values from a method. One example is the Google Guava library, which provides the Pair class that you can use to return a pair of values. For example:

public static Pair<Integer, Integer> getValues() {
  return Pair.of(1, 2);

// usage:
Pair<Integer, Integer> values = getValues();
int value1 = values.getLeft();
int value2 = values.getRight();
  1. Use a Java 8 lambda expression: If you are using Java 8 or higher, you can use a lambda expression to return multiple values. For example:
public interface ValueSupplier {
  int[] get();

public static void getValues(ValueSupplier supplier) {
  int[] values = supplier.get();

// usage:
getValues(() -> new int[] {1, 2});