code: public static <K, V> ArrayMap<K, V> of(Object... keyValuePairs) {
      ArrayMap<K, V> result = create(1);
      int length = keyValuePairs.length;
      if (1 == length % 2) {
        throw new IllegalArgumentException(
            "missing value for last key: " + keyValuePairs[length - 1]);
      }
      result.size = keyValuePairs.length / 2;
      Object[] data = result.data = new Object[length];
      System.arraycopy(keyValuePairs, 0, data, 0, length);
      return result;
    }
docs: Returns a new instance of an array map of the given key value pairs in alternating order. For
  example: {@code ArrayMap<String, String> map = ArrayMap.of("key1", "value1", "key2", "value2",
  ...);}.
  
  <p>WARNING: there is no compile-time checking of the {@code keyValuePairs} parameter to ensure
  that the keys or values have the correct type, so if the wrong type is passed in, any problems
  will occur at runtime. Also, there is no checking that the keys are unique, which the caller
  must ensure is true.