• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* GENERATED SOURCE. DO NOT MODIFY. */
2 // © 2016 and later: Unicode, Inc. and others.
3 // License & terms of use: http://www.unicode.org/copyright.html#License
4 /*
5  *******************************************************************************
6  * Copyright (C) 2014, International Business Machines Corporation and
7  * others. All Rights Reserved.
8  *******************************************************************************
9  */
10 package ohos.global.icu.impl;
11 
12 /**
13  * A pair of objects: first and second.
14  *
15  * @param <F> first object type
16  * @param <S> second object type
17  * @hide exposed on OHOS
18  */
19 public class Pair<F, S> {
20     public final F first;
21     public final S second;
22 
Pair(F first, S second)23     protected Pair(F first, S second) {
24         this.first = first;
25         this.second = second;
26     }
27 
28     /**
29      * Creates a pair object
30      * @param first must be non-null
31      * @param second must be non-null
32      * @return The pair object.
33      */
of(F first, S second)34     public static <F, S> Pair<F, S> of(F first, S second) {
35         if (first == null || second == null) {
36             throw new IllegalArgumentException("Pair.of requires non null values.");
37         }
38         return new Pair<F, S>(first, second);
39     }
40 
41     @Override
equals(Object other)42     public boolean equals(Object other) {
43         if (other == this) {
44             return true;
45         }
46         if (!(other instanceof Pair)) {
47             return false;
48         }
49         Pair<?, ?> rhs = (Pair<?, ?>) other;
50         return first.equals(rhs.first) && second.equals(rhs.second);
51     }
52 
53     @Override
hashCode()54     public int hashCode() {
55         return first.hashCode() * 37 + second.hashCode();
56     }
57 }
58