Check equality between two SparseArray and two Map<> - Android android.util

Android examples for android.util:SparseArray

Description

Check equality between two SparseArray and two Map<>

Demo Code

import java.util.Arrays;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

import android.util.SparseArray;

public class Main {

  /**/*  w  ww .ja va 2s  .  c o m*/
   * Check whether two {@link SparseArray} equal.
   */
  public static boolean equals(SparseArray<byte[]> array, SparseArray<byte[]> otherArray) {
    if (array == otherArray) {
      return true;
    }
    if (array == null || otherArray == null) {
      return false;
    }
    if (array.size() != otherArray.size()) {
      return false;
    }

    // Keys are guaranteed in ascending order when indices are in ascending order.
    for (int i = 0; i < array.size(); ++i) {
      if (array.keyAt(i) != otherArray.keyAt(i) || !Arrays.equals(array.valueAt(i), otherArray.valueAt(i))) {
        return false;
      }
    }
    return true;
  }

  /**
   * Check whether two {@link Map} equal.
   */
  public static <T> boolean equals(Map<T, byte[]> map, Map<T, byte[]> otherMap) {
    if (map == otherMap) {
      return true;
    }
    if (map == null || otherMap == null) {
      return false;
    }
    if (map.size() != otherMap.size()) {
      return false;
    }
    Set<T> keys = map.keySet();
    if (!keys.equals(otherMap.keySet())) {
      return false;
    }
    for (T key : keys) {
      if (!Objects.deepEquals(map.get(key), otherMap.get(key))) {
        return false;
      }
    }
    return true;
  }

}

Related Tutorials