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