Home | History | Annotate | Download | only in util
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package java.util;
     19 
     20 /**
     21  * <strong>Note: Do not use this class since it is obsolete. Please use the
     22  * {@link Map} interface for new implementations.</strong>
     23  * <p>
     24  * Dictionary is an abstract class which is the superclass of all classes that
     25  * associate keys with values, such as {@code Hashtable}.
     26  *
     27  * @see Hashtable
     28  * @since 1.0
     29  */
     30 public abstract class Dictionary<K, V> {
     31     /**
     32      * Constructs a new instance of this class.
     33      */
     34     public Dictionary() {
     35     }
     36 
     37     /**
     38      * Returns an enumeration on the elements of this dictionary.
     39      *
     40      * @return an enumeration of the values of this dictionary.
     41      * @see #keys
     42      * @see #size
     43      * @see Enumeration
     44      */
     45     public abstract Enumeration<V> elements();
     46 
     47     /**
     48      * Returns the value which is associated with {@code key}.
     49      *
     50      * @param key
     51      *            the key of the value returned.
     52      * @return the value associated with {@code key}, or {@code null} if the
     53      *         specified key does not exist.
     54      * @see #put
     55      */
     56     public abstract V get(Object key);
     57 
     58     /**
     59      * Returns true if this dictionary has no key/value pairs.
     60      *
     61      * @return {@code true} if this dictionary has no key/value pairs,
     62      *         {@code false} otherwise.
     63      * @see #size
     64      */
     65     public abstract boolean isEmpty();
     66 
     67     /**
     68      * Returns an enumeration on the keys of this dictionary.
     69      *
     70      * @return an enumeration of the keys of this dictionary.
     71      * @see #elements
     72      * @see #size
     73      * @see Enumeration
     74      */
     75     public abstract Enumeration<K> keys();
     76 
     77     /**
     78      * Associate {@code key} with {@code value} in this dictionary. If {@code
     79      * key} exists in the dictionary before this call, the old value in the
     80      * dictionary is replaced by {@code value}.
     81      *
     82      * @param key
     83      *            the key to add.
     84      * @param value
     85      *            the value to add.
     86      * @return the old value previously associated with {@code key} or {@code
     87      *         null} if {@code key} is new to the dictionary.
     88      * @see #elements
     89      * @see #get
     90      * @see #keys
     91      */
     92     public abstract V put(K key, V value);
     93 
     94     /**
     95      * Removes the key/value pair with the specified {@code key} from this
     96      * dictionary.
     97      *
     98      * @param key
     99      *            the key to remove.
    100      * @return the associated value before the deletion or {@code null} if
    101      *         {@code key} was not known to this dictionary.
    102      * @see #get
    103      * @see #put
    104      */
    105     public abstract V remove(Object key);
    106 
    107     /**
    108      * Returns the number of key/value pairs in this dictionary.
    109      *
    110      * @return the number of key/value pairs in this dictionary.
    111      * @see #elements
    112      * @see #keys
    113      */
    114     public abstract int size();
    115 }
    116