public V put()

in src/main/java/org/apache/commons/collections4/map/Flat3Map.java [931:1005]


    public V put(final K key, final V value) {
        if (delegateMap != null) {
            return delegateMap.put(key, value);
        }
        // change existing mapping
        if (key == null) {
            switch (size) {  // drop through
            case 3:
                if (key3 == null) {
                    final V old = value3;
                    value3 = value;
                    return old;
                }
            case 2:
                if (key2 == null) {
                    final V old = value2;
                    value2 = value;
                    return old;
                }
            case 1:
                if (key1 == null) {
                    final V old = value1;
                    value1 = value;
                    return old;
                }
            }
        } else if (size > 0) {
            final int hashCode = key.hashCode();
            switch (size) {  // drop through
            case 3:
                if (hash3 == hashCode && key.equals(key3)) {
                    final V old = value3;
                    value3 = value;
                    return old;
                }
            case 2:
                if (hash2 == hashCode && key.equals(key2)) {
                    final V old = value2;
                    value2 = value;
                    return old;
                }
            case 1:
                if (hash1 == hashCode && key.equals(key1)) {
                    final V old = value1;
                    value1 = value;
                    return old;
                }
            }
        }

        // add new mapping
        switch (size) {
        case 2:
            hash3 = key == null ? 0 : key.hashCode();
            key3 = key;
            value3 = value;
            break;
        case 1:
            hash2 = key == null ? 0 : key.hashCode();
            key2 = key;
            value2 = value;
            break;
        case 0:
            hash1 = key == null ? 0 : key.hashCode();
            key1 = key;
            value1 = value;
            break;
        default:
            convertToMap();
            delegateMap.put(key, value);
            return null;
        }
        size++;
        return null;
    }