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.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# Pair\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \nbelongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1 \nSummary: [Fields](#lfields) \\| [Ctors](#pubctors) \\| [Methods](#pubmethods) \\| [Inherited Methods](#inhmethods) \\| [\\[Expand All\\]](#) \n\nPair\n====\n\n| This package is part of the Android [support library](/topic/libraries/support-library) which is no longer maintained. The support library has been superseded by [AndroidX](/jetpack/androidx) which is part of [Jetpack](/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider [migrating](/jetpack/androidx/migrate) existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library [class\n| mappings](/jetpack/androidx/migrate/class-mappings).\n\n\n`\npublic\n\n\nclass\nPair\n`\n\n\n`\n\nextends Object\n\n\n`\n\n`\n\n\n`\n\n|---|--------------------------------------|\n| java.lang.Object ||\n| ↳ | android.support.v4.util.Pair\\\u003cF, S\\\u003e |\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\nContainer to ease passing around a tuple of two objects. This object provides a sensible\nimplementation of equals(), returning true if equals() is true on each of the contained\nobjects.\n\nSummary\n-------\n\n| ### Fields ||\n|-------------------|----------------------------------------------------------|\n| ` public final F` | [first](/reference/android/support/v4/util/Pair#first) |\n| ` public final S` | [second](/reference/android/support/v4/util/Pair#second) |\n\n| ### Public constructors ||\n|-------------------------------------------------------------------------------------------------------------|---|\n| ` `[Pair](/reference/android/support/v4/util/Pair#Pair(F, S))`(F first, S second) ` Constructor for a Pair. |\n\n| ### Public methods ||\n|--------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` static \u003cA, B\u003e `[Pair](/reference/android/support/v4/util/Pair)`\u003cA, B\u003e` | ` `[create](/reference/android/support/v4/util/Pair#create(A, B))`(A a, B b) ` Convenience method for creating an appropriately typed pair. |\n| ` boolean` | ` `[equals](/reference/android/support/v4/util/Pair#equals(java.lang.Object))`(Object o) ` Checks the two objects for equality by delegating to their respective [equals(Object)](/reference/java/lang/Object#equals(java.lang.Object)) methods. |\n| ` int` | ` `[hashCode](/reference/android/support/v4/util/Pair#hashCode())`() ` Compute a hash code using the hash codes of the underlying objects |\n| ` String` | ` `[toString](/reference/android/support/v4/util/Pair#toString())`() ` |\n\n| ### Inherited methods |\n|-----------------------|---|\n| From class ` java.lang.Object ` |-------------------|-------------------------------| | ` Object` | ` clone() ` | | ` boolean` | ` equals(Object arg0) ` | | ` void` | ` finalize() ` | | ` final Class\u003c?\u003e` | ` getClass() ` | | ` int` | ` hashCode() ` | | ` final void` | ` notify() ` | | ` final void` | ` notifyAll() ` | | ` String` | ` toString() ` | | ` final void` | ` wait(long arg0, int arg1) ` | | ` final void` | ` wait(long arg0) ` | | ` final void` | ` wait() ` | ||\n\nFields\n------\n\n### first\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \n\n```\nF first\n```\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### second\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \n\n```\nS second\n```\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nPublic constructors\n-------------------\n\n### Pair\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \n\n```\nPair (F first, \n S second)\n```\n\nConstructor for a Pair.\n\n\u003cbr /\u003e\n\n| Parameters ||\n|----------|-------------------------------------------|\n| `first` | `F`: the first object in the Pair \u003cbr /\u003e |\n| `second` | `S`: the second object in the pair \u003cbr /\u003e |\n\nPublic methods\n--------------\n\n### create\n\nadded in [version 22.1.0](/topic/libraries/support-library/revisions) \n\n```\nPair\u003cA, B\u003e create (A a, \n B b)\n```\n\nConvenience method for creating an appropriately typed pair.\n\n\u003cbr /\u003e\n\n| Parameters ||\n|-----|-------------------------------------------|\n| `a` | `A`: the first object in the Pair \u003cbr /\u003e |\n| `b` | `B`: the second object in the pair \u003cbr /\u003e |\n\n| Returns ||\n|---------------------------------------------------------|-------------------------------------------------------------|\n| [Pair](/reference/android/support/v4/util/Pair)`\u003cA, B\u003e` | a Pair that is templatized with the types of a and b \u003cbr /\u003e |\n\n### equals\n\n```\nboolean equals (Object o)\n```\n\nChecks the two objects for equality by delegating to their respective\n[equals(Object)](/reference/java/lang/Object#equals(java.lang.Object)) methods.\n\n\u003cbr /\u003e\n\n| Parameters ||\n|-----|----------------------------------------------------------------------------------------------------------------------|\n| `o` | `Object`: the [Pair](/reference/android/support/v4/util/Pair) to which this one is to be checked for equality \u003cbr /\u003e |\n\n| Returns ||\n|-----------|-----------------------------------------------------------------------------|\n| `boolean` | true if the underlying objects of the Pair are both considered equal \u003cbr /\u003e |\n\n### hashCode\n\n```\nint hashCode ()\n```\n\nCompute a hash code using the hash codes of the underlying objects\n\n\u003cbr /\u003e\n\n| Returns ||\n|-------|-------------------------------|\n| `int` | a hashcode of the Pair \u003cbr /\u003e |\n\n### toString\n\n```\nString toString ()\n```\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ||\n|----------|--------|\n| `String` | \u003cbr /\u003e |\n\n-\n\n Interfaces\n ----------\n\n - [Pools.Pool](/reference/android/support/v4/util/Pools.Pool)\n-\n\n Classes\n -------\n\n - [ArrayMap](/reference/android/support/v4/util/ArrayMap)\n - [ArraySet](/reference/android/support/v4/util/ArraySet)\n - [AtomicFile](/reference/android/support/v4/util/AtomicFile)\n - [CircularArray](/reference/android/support/v4/util/CircularArray)\n - [CircularIntArray](/reference/android/support/v4/util/CircularIntArray)\n - [LongSparseArray](/reference/android/support/v4/util/LongSparseArray)\n - [LruCache](/reference/android/support/v4/util/LruCache)\n - [ObjectsCompat](/reference/android/support/v4/util/ObjectsCompat)\n - [Pair](/reference/android/support/v4/util/Pair)\n - [PatternsCompat](/reference/android/support/v4/util/PatternsCompat)\n - [Pools](/reference/android/support/v4/util/Pools)\n - [Pools.SimplePool](/reference/android/support/v4/util/Pools.SimplePool)\n - [Pools.SynchronizedPool](/reference/android/support/v4/util/Pools.SynchronizedPool)\n - [SimpleArrayMap](/reference/android/support/v4/util/SimpleArrayMap)\n - [SparseArrayCompat](/reference/android/support/v4/util/SparseArrayCompat)"]]