## org.apache.tomcat.util.collections
Class MultiMap

    java.lang.Object
      org.apache.tomcat.util.collections.MultiMap

Direct Known Subclasses:
  Parameters

public class MultiMap
extends java.lang.Object

An efficient representation for certain type of map. The keys can have a single or multi values, but most of the time there are single values. The data is of "MessageBytes" type, meaning bytes[] that can be converted to Strings ( if needed, and encoding is lazy-binded ). This is a base class for MimeHeaders, Parameters and Cookies. Data structures: each field is a single-valued key/value. The fields are allocated when needed, and are recycled. The current implementation does linear search, in future we'll also use the hashkey.

Author:
  dac@eng.sun.com, James Todd [gonzo@eng.sun.com], Costin Manolache

Field Summary
`protected int` `count`
`protected org.apache.tomcat.util.collections.MultiMap.Field[]` `fields`

Constructor Summary
`MultiMap(int initial_size)`

Method Summary
`int` `addField()` Create a new, unitialized entry.
`int` `find(java.lang.String name, int starting)` Find the index of a field with the given name.
`int` `findFirst(java.lang.String name)`
`int` `findIgnoreCase(java.lang.String name, int starting)` Find the index of a field with the given name.
`int` `findNext(int startPos)`
`MessageBytes` `get(java.lang.String name)`
`MessageBytes` `getName(int n)` Returns the Nth header name This may be used to iterate through all header fields.
`MessageBytes` `getValue(int n)` Returns the Nth header value This may be used to iterate through all header fields.
`void` `recycle()` Clears all header fields.
`void` `remove(int i)` Removes the field at the specified position.
`int` `size()` Returns the current number of header fields.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### fields

    protected org.apache.tomcat.util.collections.MultiMap.Field[] fields

### count

    protected int count

Constructor Detail

### MultiMap

    public MultiMap(int initial_size)

Method Detail

### recycle

    public void recycle()

  Clears all header fields.

### size

    public int size()

  Returns the current number of header fields.

### getName

    public MessageBytes getName(int n)

  Returns the Nth header name This may be used to iterate through all header fields. An exception is thrown if the index is not valid ( <0 or >size )

### getValue

    public MessageBytes getValue(int n)

  Returns the Nth header value This may be used to iterate through all header fields.

### find

    public int find(java.lang.String name,
                    int starting)

  Find the index of a field with the given name.

### findIgnoreCase

    public int findIgnoreCase(java.lang.String name,
                              int starting)

  Find the index of a field with the given name.

### remove

    public void remove(int i)

  Removes the field at the specified position. MultiMap will preserve the order of field add unless remove() is called. This is not thread-safe, and will invalidate all iterators. This is not a frequent operation for Headers and Parameters - there are better ways ( like adding a "isValid" field )

### addField

    public int addField()

  Create a new, unitialized entry.

### get

    public MessageBytes get(java.lang.String name)

### findFirst

    public int findFirst(java.lang.String name)

### findNext

    public int findNext(int startPos)

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.