Package org.apache.tomcat.util.collections

## Class CaseInsensitiveKeyMap<V>

- java.lang.Object
- - java.util.AbstractMap<String,​V>
  - - org.apache.tomcat.util.collections.CaseInsensitiveKeyMap<V>

Type Parameters:
  `V` - Type of values placed in this Map.

All Implemented Interfaces:
  `Map<String,​V>`

    public class CaseInsensitiveKeyMap<V>
    extends AbstractMap<String,​V>

A Map implementation that uses case-insensitive (using `Locale.ENGLISH`) strings as keys.

Keys must be instances of `String`. Note that this means that `null` keys are not permitted.

This implementation is not thread-safe.

### Nested Class Summary

### Nested classes/interfaces inherited from class java.util.AbstractMap

`AbstractMap.SimpleEntry<K extends Object,​V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,​V extends Object>`

### Nested classes/interfaces inherited from interface java.util.Map

`Map.Entry<K extends Object,​V extends Object>`

### Constructor Summary

Constructors
`CaseInsensitiveKeyMap()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `containsKey​(Object key)`
`Set<Map.Entry<String,​V>>` `entrySet()`
`V` `get​(Object key)`
`V` `put​(String key, V value)`
`void` `putAll​(Map<? extends String,​? extends V> m)`
`V` `remove​(Object key)`

### Methods inherited from class java.util.AbstractMap

`clear, clone, containsValue, equals, hashCode, isEmpty, keySet, size, toString, values`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Map

`compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll`

### Constructor Detail

#### CaseInsensitiveKeyMap

    public CaseInsensitiveKeyMap()

### Method Detail

#### get

    public V get​(Object key)

Specified by:
  `get` in interface `Map<String,​V>`
Overrides:
  `get` in class `AbstractMap<String,​V>`

#### put

    public V put​(String key,
                 V value)

Specified by:
  `put` in interface `Map<String,​V>`
Overrides:
  `put` in class `AbstractMap<String,​V>`

#### putAll

    public void putAll​(Map<? extends String,​? extends V> m)

Use this method with caution. If the input Map contains duplicate keys when the keys are compared in a case insensitive manner then some values will be lost when inserting via this method.

Specified by:
  `putAll` in interface `Map<String,​V>`
Overrides:
  `putAll` in class `AbstractMap<String,​V>`

#### containsKey

    public boolean containsKey​(Object key)

Specified by:
  `containsKey` in interface `Map<String,​V>`
Overrides:
  `containsKey` in class `AbstractMap<String,​V>`

#### remove

    public V remove​(Object key)

Specified by:
  `remove` in interface `Map<String,​V>`
Overrides:
  `remove` in class `AbstractMap<String,​V>`

#### entrySet

    public Set<Map.Entry<String,​V>> entrySet()

Specified by:
  `entrySet` in interface `Map<String,​V>`
Specified by:
  `entrySet` in class `AbstractMap<String,​V>`