private Object mapPut()

in java/benchmark/src/main/java/org/apache/fury/benchmark/MapSuite.java [96:155]


  private Object mapPut(MapSuite.MapState state, Object[] objects, Blackhole blackhole) {
    switch (state.mapType) {
      case JDK_IDENTITY_HASH_MAP:
        state.jdkIdentityHashMap.clear();
        for (int i = 0; i < objects.length; i++) {
          if (state.jdkIdentityHashMap.containsKey(objects[i])) {
            blackhole.consume(i);
          } else {
            state.jdkIdentityHashMap.put(objects[i], i);
            blackhole.consume(i);
          }
        }
        return state.jdkIdentityHashMap;
      case FURY_IDENTITY_MAP:
        state.identityMap.clear();
        for (int i = 0; i < 500; i++) {
          if (state.identityMap.get(objects[i]) == null) {
            blackhole.consume(state.identityMap.put(objects[i], i));
          }
        }
        return state.identityMap;
      case FST_IDENTITY_ID_MAP:
        state.identity2IdMap.clear();
        for (int i = 0; i < 500; i++) {
          blackhole.consume(state.identity2IdMap.putOrGet(objects[i], i));
        }
        return state.identity2IdMap;
      case FURY_IDENTITY_OBJECT_INT_MAP:
        state.identityObjectIntMap.clear();
        for (int i = 0; i < 500; i++) {
          blackhole.consume(state.identityObjectIntMap.putOrGet(objects[i], i));
        }
        return state.identityObjectIntMap;
      case JDK_HASH_MAP:
        state.hashMap.clear();
        for (int i = 0; i < 500; i++) {
          if (state.hashMap.get(objects[i]) == null) {
            blackhole.consume(state.hashMap.put(objects[i], i));
          }
        }
        return state.hashMap;
      case FURY_OBJECT_MAP:
        state.objectMap.clear();
        for (int i = 0; i < 500; i++) {
          if (state.objectMap.get(objects[i]) == null) {
            blackhole.consume(state.objectMap.put(objects[i], i));
          }
        }
        return state.objectMap;
      case SWISS_TABLE:
        state.swissTable = new SwissTable<>(500);
        for (int i = 0; i < 500; i++) {
          if (state.swissTable.get(objects[i]) == null) {
            blackhole.consume(state.swissTable.put(objects[i], i));
          }
        }
        return state.swissTable;
    }
    return null;
  }