public class

Pair<F, S>

extends java.lang.Object

 java.lang.Object

↳androidx.core.util.Pair<F, S>

Gradle dependencies

compile group: 'androidx.core', name: 'core', version: '1.9.0-alpha04'

  • groupId: androidx.core
  • artifactId: core
  • version: 1.9.0-alpha04

Artifact androidx.core:core:1.9.0-alpha04 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.core:core com.android.support:support-compat

Androidx class mapping:

androidx.core.util.Pair android.support.v4.util.Pair

Overview

Container to ease passing around a tuple of two objects. This object provides a sensible implementation of equals(), returning true if equals() is true on each of the contained objects.

Summary

Fields
public final java.lang.Objectfirst

public final java.lang.Objectsecond

Constructors
publicPair(java.lang.Object first, java.lang.Object second)

Constructor for a Pair.

Methods
public static Pair<java.lang.Object, java.lang.Object>create(java.lang.Object a, java.lang.Object b)

Convenience method for creating an appropriately typed pair.

public booleanequals(java.lang.Object o)

Checks the two objects for equality by delegating to their respective equals methods.

public inthashCode()

Compute a hash code using the hash codes of the underlying objects

public java.lang.StringtoString()

from java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, wait

Fields

public final java.lang.Object first

public final java.lang.Object second

Constructors

public Pair(java.lang.Object first, java.lang.Object second)

Constructor for a Pair.

Parameters:

first: the first object in the Pair
second: the second object in the pair

Methods

public boolean equals(java.lang.Object o)

Checks the two objects for equality by delegating to their respective equals methods.

Parameters:

o: the Pair to which this one is to be checked for equality

Returns:

true if the underlying objects of the Pair are both considered equal

public int hashCode()

Compute a hash code using the hash codes of the underlying objects

Returns:

a hashcode of the Pair

public java.lang.String toString()

public static Pair<java.lang.Object, java.lang.Object> create(java.lang.Object a, java.lang.Object b)

Convenience method for creating an appropriately typed pair.

Parameters:

a: the first object in the Pair
b: the second object in the pair

Returns:

a Pair that is templatized with the types of a and b

Source

/*
 * Copyright (C) 2009 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.core.util;

import androidx.annotation.NonNull;

/**
 * Container to ease passing around a tuple of two objects. This object provides a sensible
 * implementation of equals(), returning true if equals() is true on each of the contained
 * objects.
 */
public class Pair<F, S> {
    public final F first;
    public final S second;

    /**
     * Constructor for a Pair.
     *
     * @param first the first object in the Pair
     * @param second the second object in the pair
     */
    @SuppressWarnings("UnknownNullness") // Generic nullness should come from type annotations.
    public Pair(F first, S second) {
        this.first = first;
        this.second = second;
    }

    /**
     * Checks the two objects for equality by delegating to their respective
     * {@link Object#equals(Object)} methods.
     *
     * @param o the {@link Pair} to which this one is to be checked for equality
     * @return true if the underlying objects of the Pair are both considered
     *         equal
     */
    @Override
    public boolean equals(Object o) {
        if (!(o instanceof Pair)) {
            return false;
        }
        Pair<?, ?> p = (Pair<?, ?>) o;
        return ObjectsCompat.equals(p.first, first) && ObjectsCompat.equals(p.second, second);
    }

    /**
     * Compute a hash code using the hash codes of the underlying objects
     *
     * @return a hashcode of the Pair
     */
    @Override
    public int hashCode() {
        return (first == null ? 0 : first.hashCode()) ^ (second == null ? 0 : second.hashCode());
    }

    @NonNull
    @Override
    public String toString() {
        return "Pair{" + first + " " + second + "}";
    }

    /**
     * Convenience method for creating an appropriately typed pair.
     * @param a the first object in the Pair
     * @param b the second object in the pair
     * @return a Pair that is templatized with the types of a and b
     */
    @NonNull
    @SuppressWarnings("UnknownNullness") // Generic nullness should come from type annotations.
    public static <A, B> Pair<A, B> create(A a, B b) {
        return new Pair<>(a, b);
    }
}