static ArrayMap opArrayMaps()

in metrics/src/main/java/com/facebook/battery/metrics/healthstats/HealthStatsMetrics.java [205:226]


  static <K, V> ArrayMap<K, V> opArrayMaps(int op, ArrayMap<K, V> a, @Nullable ArrayMap<K, V> b) {
    int aSize = a.size();

    ArrayMap<K, V> output = new ArrayMap<>();
    for (int i = 0; i < aSize; i++) {
      K key = a.keyAt(i);
      V bValue = b == null ? null : b.get(key);
      output.put(key, bValue == null ? a.valueAt(i) : (V) opValues(op, a.valueAt(i), bValue));
    }

    if (op == OP_SUM) {
      int bSize = b == null ? 0 : b.size();
      for (int i = 0; i < bSize; i++) {
        K key = b.keyAt(i);
        if (a.get(key) == null) {
          output.put(key, b.valueAt(i));
        }
      }
    }

    return output;
  }