<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FCollections_Data_Structure%2FMap</id>
		<title>Java/Collections Data Structure/Map - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FCollections_Data_Structure%2FMap"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Collections_Data_Structure/Map&amp;action=history"/>
		<updated>2026-04-19T04:57:14Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Collections_Data_Structure/Map&amp;diff=9063&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Collections_Data_Structure/Map&amp;diff=9063&amp;oldid=prev"/>
				<updated>2010-06-01T07:23:53Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:23, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Collections_Data_Structure/Map&amp;diff=9062&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Collections_Data_Structure/Map&amp;diff=9062&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A java.util.Map implementation using reference values ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
/**********************************************************************&lt;br /&gt;
Copyright (c) 2002 Mike Martin (TJDO) and others. All rights reserved.&lt;br /&gt;
Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
you may not use this file except in compliance with the License.&lt;br /&gt;
You may obtain a copy of the License at&lt;br /&gt;
    http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
See the License for the specific language governing permissions and&lt;br /&gt;
limitations under the License.&lt;br /&gt;
 &lt;br /&gt;
Contributors:&lt;br /&gt;
2002 Kelly Grizzle (TJDO)&lt;br /&gt;
2003 Andy Jefferson - commented&lt;br /&gt;
    ...&lt;br /&gt;
**********************************************************************/&lt;br /&gt;
&lt;br /&gt;
import java.lang.ref.Reference;&lt;br /&gt;
import java.lang.ref.ReferenceQueue;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.Collections;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * A &amp;lt;code&amp;gt;java.util.Map&amp;lt;/code&amp;gt; implementation using reference values.&lt;br /&gt;
 *&lt;br /&gt;
 * &amp;lt;p&amp;gt;The values are stored in the map as references.  If the garbage collector&lt;br /&gt;
 * clears the reference, the corresponding key is automatically removed from the&lt;br /&gt;
 * map.&lt;br /&gt;
 *&lt;br /&gt;
 * @see java.lang.ref.Reference&lt;br /&gt;
 * @version $Revision: 1.3 $ &lt;br /&gt;
 */&lt;br /&gt;
public abstract class ReferenceValueMap implements Map, Cloneable&lt;br /&gt;
{&lt;br /&gt;
    private HashMap map;&lt;br /&gt;
    private ReferenceQueue reaped = new ReferenceQueue();&lt;br /&gt;
    /**&lt;br /&gt;
     * Default Constructor.&lt;br /&gt;
     **/&lt;br /&gt;
    public ReferenceValueMap()&lt;br /&gt;
    {&lt;br /&gt;
        map = new HashMap();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Constructor taking initial capacity.&lt;br /&gt;
     * @param initial_capacity Initial Capacity of HashMap&lt;br /&gt;
     **/&lt;br /&gt;
    public ReferenceValueMap(int initial_capacity)&lt;br /&gt;
    {&lt;br /&gt;
        map = new HashMap(initial_capacity);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Constructor taking initial capacity and load factor.&lt;br /&gt;
     * @param initial_capacity Initial Capacity of HashMap&lt;br /&gt;
     * @param load_factor      Load Factor of HashMap&lt;br /&gt;
     **/&lt;br /&gt;
    public ReferenceValueMap(int initial_capacity,float load_factor)&lt;br /&gt;
    {&lt;br /&gt;
        map = new HashMap(initial_capacity, load_factor);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Constructor taking initial Map.&lt;br /&gt;
     * @param m Map to initial with.&lt;br /&gt;
     **/&lt;br /&gt;
    public ReferenceValueMap(Map m)&lt;br /&gt;
    {&lt;br /&gt;
        map = new HashMap();&lt;br /&gt;
        putAll(m);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Clone method.&lt;br /&gt;
     * @return Clone of this object.&lt;br /&gt;
     **/&lt;br /&gt;
    public Object clone()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        ReferenceValueMap rvm = null;&lt;br /&gt;
        &lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            rvm = (ReferenceValueMap)super.clone();&lt;br /&gt;
        }&lt;br /&gt;
        catch (CloneNotSupportedException e)&lt;br /&gt;
        {&lt;br /&gt;
            // Do nothing&lt;br /&gt;
        }&lt;br /&gt;
        rvm.map = (HashMap)map.clone(); // to preserve initialCapacity, loadFactor&lt;br /&gt;
        rvm.map.clear();&lt;br /&gt;
        rvm.reaped = new ReferenceQueue();&lt;br /&gt;
        rvm.putAll(entrySet());&lt;br /&gt;
        return rvm;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * References returned by &amp;lt;code&amp;gt;newValueReference&amp;lt;/code&amp;gt; must implement&lt;br /&gt;
     * this interface to provide the corresponding map key for the value.&lt;br /&gt;
     */&lt;br /&gt;
    public interface ValueReference&lt;br /&gt;
    {&lt;br /&gt;
        /**&lt;br /&gt;
         * Returns the key associated with the value referenced by this&lt;br /&gt;
         * &amp;lt;code&amp;gt;Reference&amp;lt;/code&amp;gt; object.&lt;br /&gt;
         * @return The Key&lt;br /&gt;
         */&lt;br /&gt;
        Object getKey();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns a new &amp;lt;code&amp;gt;Reference&amp;lt;/code&amp;gt; object to be inserted into the map.&lt;br /&gt;
     * Subclasses must implement this method to construct &amp;lt;code&amp;gt;Reference&amp;lt;/code&amp;gt;&lt;br /&gt;
     * objects of the desired type (e.g. &amp;lt;code&amp;gt;SoftReference&amp;lt;/code&amp;gt;, etc.).&lt;br /&gt;
     *&lt;br /&gt;
     * @param key   The key that will be inserted.&lt;br /&gt;
     * @param value The associated value to be referenced.&lt;br /&gt;
     * @param queue The &amp;lt;code&amp;gt;ReferenceQueue&amp;lt;/code&amp;gt; with which to register the&lt;br /&gt;
     *              new &amp;lt;code&amp;gt;Reference&amp;lt;/code&amp;gt; object.&lt;br /&gt;
     * @return The new ValueReference&lt;br /&gt;
     */&lt;br /&gt;
    protected abstract ValueReference newValueReference(Object key, Object value, ReferenceQueue queue);&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to add an object to the Map.&lt;br /&gt;
     * @param key Key for object&lt;br /&gt;
     * @param value Value of object&lt;br /&gt;
     * @return The Object.&lt;br /&gt;
     **/ &lt;br /&gt;
    public Object put(Object key, Object value)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.put(key, newValueReference(key, value, reaped));&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to add the contents of a Map.&lt;br /&gt;
     * @param m Map&lt;br /&gt;
     **/ &lt;br /&gt;
    public void putAll(Map m)&lt;br /&gt;
    {&lt;br /&gt;
        putAll(m.entrySet());&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to add the contents of a Set.&lt;br /&gt;
     * @param entrySet The Set&lt;br /&gt;
     **/&lt;br /&gt;
    private void putAll(Set entrySet)&lt;br /&gt;
    {&lt;br /&gt;
        Iterator i = entrySet.iterator();&lt;br /&gt;
        while (i.hasNext())&lt;br /&gt;
        {&lt;br /&gt;
            Map.Entry entry = (Map.Entry)i.next();&lt;br /&gt;
            put(entry.getKey(), entry.getValue());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to get a value for a key.&lt;br /&gt;
     * @param key The Key&lt;br /&gt;
     * @return The Value&lt;br /&gt;
     **/&lt;br /&gt;
    public Object get(Object key)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        Reference ref = (Reference)map.get(key);&lt;br /&gt;
        Object value = ref == null ? null : ref.get();&lt;br /&gt;
        return value;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to empty the HashMap.&lt;br /&gt;
     **/&lt;br /&gt;
    public void clear()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        map.clear();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for the size of the HashMap.&lt;br /&gt;
     * @return The size&lt;br /&gt;
     **/&lt;br /&gt;
    public int size()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.size();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for whether the Map contains the specified Key&lt;br /&gt;
     * @param obj The key&lt;br /&gt;
     * @return Whether the key exists&lt;br /&gt;
     **/&lt;br /&gt;
    public boolean containsKey(Object obj)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.containsKey(obj);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for whether the Map contains the specified value.&lt;br /&gt;
     * @param obj The value&lt;br /&gt;
     * @return Whether the Map contains the value.&lt;br /&gt;
     **/&lt;br /&gt;
    public boolean containsValue(Object obj)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        if (obj != null)&lt;br /&gt;
        {&lt;br /&gt;
            Iterator i = map.values().iterator();&lt;br /&gt;
            while (i.hasNext())&lt;br /&gt;
            {&lt;br /&gt;
                Reference ref = (Reference)i.next();&lt;br /&gt;
                if (obj.equals(ref.get()))&lt;br /&gt;
                {&lt;br /&gt;
                    return true;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for whether the Map is empty.&lt;br /&gt;
     * @return Whether the Map is empty.&lt;br /&gt;
     **/&lt;br /&gt;
    public boolean isEmpty()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.isEmpty();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for the Set of keys in the Map.&lt;br /&gt;
     * @return The Set of keys&lt;br /&gt;
     **/&lt;br /&gt;
    public Set keySet()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.keySet();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for the values from the Map.&lt;br /&gt;
     * @return The Values.&lt;br /&gt;
     **/&lt;br /&gt;
    public Collection values()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        Collection c = map.values();&lt;br /&gt;
        Iterator i = c.iterator();&lt;br /&gt;
        ArrayList l = new ArrayList(c.size());&lt;br /&gt;
        while (i.hasNext())&lt;br /&gt;
        {&lt;br /&gt;
            Reference ref = (Reference)i.next();&lt;br /&gt;
            Object obj = ref.get();&lt;br /&gt;
            if (obj != null)&lt;br /&gt;
            {&lt;br /&gt;
                l.add(obj);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return Collections.unmodifiableList(l);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Accessor for the entry set.&lt;br /&gt;
     * @return The Set.&lt;br /&gt;
     **/&lt;br /&gt;
    public Set entrySet()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        Set s = map.entrySet();&lt;br /&gt;
        Iterator i = s.iterator();&lt;br /&gt;
        HashMap m = new HashMap(s.size());&lt;br /&gt;
        while (i.hasNext())&lt;br /&gt;
        {&lt;br /&gt;
            Map.Entry entry = (Map.Entry)i.next();&lt;br /&gt;
            Reference ref = (Reference)entry.getValue();&lt;br /&gt;
            Object obj = ref.get();&lt;br /&gt;
            if (obj != null)&lt;br /&gt;
            {&lt;br /&gt;
                m.put(entry.getKey(), obj);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        return Collections.unmodifiableSet(m.entrySet());&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Method to remove an object for the specified key.&lt;br /&gt;
     * @param key The Key&lt;br /&gt;
     * @return The Object removed &lt;br /&gt;
     **/&lt;br /&gt;
    public Object remove(Object key)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.remove(key);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Hashcode generator for this object.&lt;br /&gt;
     * @return The Hashcode&lt;br /&gt;
     **/&lt;br /&gt;
    public int hashCode()&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.hashCode();&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Equality operator.&lt;br /&gt;
     * @param o THe object to compare against.&lt;br /&gt;
     * @return Whether it is equal.&lt;br /&gt;
     **/&lt;br /&gt;
    public boolean equals(Object o)&lt;br /&gt;
    {&lt;br /&gt;
        reap();&lt;br /&gt;
        return map.equals(o);&lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Utility method to reap objects.&lt;br /&gt;
     **/&lt;br /&gt;
    public void reap()&lt;br /&gt;
    {&lt;br /&gt;
        ValueReference ref;&lt;br /&gt;
        while ((ref = (ValueReference)reaped.poll()) != null)&lt;br /&gt;
        {&lt;br /&gt;
            map.remove(ref.getKey());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A map declared to hold objects of a type T can also hold objects that extend from T ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    Map&amp;lt;Number, String&amp;gt; numMap = new HashMap&amp;lt;Number, String&amp;gt;();&lt;br /&gt;
    numMap.put(.5, &amp;quot;half&amp;quot;);&lt;br /&gt;
    numMap.put(1, &amp;quot;first&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Automatically Removing an Unreferenced Element from a Hash Table ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.WeakHashMap;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map weakMap = new WeakHashMap();&lt;br /&gt;
    Object keyObject = &amp;quot;&amp;quot;;&lt;br /&gt;
    Object valueObject = &amp;quot;&amp;quot;;&lt;br /&gt;
    weakMap.put(keyObject, valueObject);&lt;br /&gt;
    Iterator it = weakMap.keySet().iterator();&lt;br /&gt;
    while (it.hasNext()) {&lt;br /&gt;
      Object key = it.next();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A value retrieved from a type-specific collection does not need to be casted ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.net.MalformedURLException;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    Map&amp;lt;String, URL&amp;gt; urlMap = new HashMap&amp;lt;String, URL&amp;gt;();&lt;br /&gt;
    try {&lt;br /&gt;
      urlMap.put(&amp;quot;java&amp;quot;, new URL(&amp;quot;http://www.jexp.ru&amp;quot;));&lt;br /&gt;
    } catch (MalformedURLException e) {&lt;br /&gt;
    }&lt;br /&gt;
    String s = urlMap.get(&amp;quot;java&amp;quot;).getHost();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Convert Properties into Map ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
import java.util.Properties;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Properties properties = new Properties();&lt;br /&gt;
    properties.setProperty(&amp;quot;name&amp;quot;, &amp;quot;Designer&amp;quot;);&lt;br /&gt;
    properties.setProperty(&amp;quot;version&amp;quot;, &amp;quot;1.0&amp;quot;);&lt;br /&gt;
    properties.setProperty(&amp;quot;vendor&amp;quot;, &amp;quot;Inc&amp;quot;);&lt;br /&gt;
    Map&amp;lt;String, String&amp;gt; map = new HashMap&amp;lt;String, String&amp;gt;((Map) properties);&lt;br /&gt;
    Set propertySet = map.entrySet();&lt;br /&gt;
    for (Object o : propertySet) {&lt;br /&gt;
      Map.Entry entry = (Map.Entry) o;&lt;br /&gt;
      System.out.printf(&amp;quot;%s = %s%n&amp;quot;, entry.getKey(), entry.getValue());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create an array containing the keys in a map ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map map = new HashMap();&lt;br /&gt;
    Object[] objectArray = map.keySet().toArray();&lt;br /&gt;
    MyClass[] array = (MyClass[]) map.keySet().toArray(new MyClass[map.keySet().size()]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyClass {&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create an array containing the values in a map ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map map = new HashMap();&lt;br /&gt;
    Object[] objectArray = map.values().toArray();&lt;br /&gt;
    MyClass[] array = (MyClass[]) map.values().toArray(new MyClass[map.values().size()]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyClass {&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create type specific collections ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Map&amp;lt;Integer, String&amp;gt; grades = new HashMap&amp;lt;Integer, String&amp;gt;();&lt;br /&gt;
    grades.put(1, &amp;quot;A&amp;quot;);&lt;br /&gt;
    grades.put(2, &amp;quot;B&amp;quot;);&lt;br /&gt;
    grades.put(3, &amp;quot;C&amp;quot;);&lt;br /&gt;
    grades.put(4, &amp;quot;D&amp;quot;);&lt;br /&gt;
    grades.put(5, &amp;quot;E&amp;quot;);&lt;br /&gt;
    String value = grades.get(1);&lt;br /&gt;
    List&amp;lt;String&amp;gt; dayNames = new ArrayList&amp;lt;String&amp;gt;();&lt;br /&gt;
    dayNames.add(&amp;quot;Sunday&amp;quot;);&lt;br /&gt;
    dayNames.add(&amp;quot;Monday&amp;quot;);&lt;br /&gt;
    dayNames.add(&amp;quot;Tuesday&amp;quot;);&lt;br /&gt;
    dayNames.add(&amp;quot;Wednesday&amp;quot;);&lt;br /&gt;
    String firstDay = dayNames.get(0);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Hash Table ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.TreeMap;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map&amp;lt;String, Integer&amp;gt; map = new HashMap&amp;lt;String, Integer&amp;gt;();&lt;br /&gt;
    map = new TreeMap();&lt;br /&gt;
    map.put(&amp;quot;a&amp;quot;, new Integer(1));&lt;br /&gt;
    map.put(&amp;quot;b&amp;quot;, new Integer(2));&lt;br /&gt;
    map.put(&amp;quot;c&amp;quot;, new Integer(3));&lt;br /&gt;
    int size = map.size(); // 2&lt;br /&gt;
    Object oldValue = map.put(&amp;quot;a&amp;quot;, new Integer(9)); // 1&lt;br /&gt;
    oldValue = map.remove(&amp;quot;c&amp;quot;); // 3&lt;br /&gt;
    Iterator it = map.keySet().iterator();&lt;br /&gt;
    while (it.hasNext()) {&lt;br /&gt;
      Object key = it.next();&lt;br /&gt;
    }&lt;br /&gt;
    it = map.values().iterator();&lt;br /&gt;
    while (it.hasNext()) {&lt;br /&gt;
      Object value = it.next();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Map That Retains Order-of-Insertion ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.LinkedHashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map&amp;lt;String, String&amp;gt; map = new LinkedHashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    map.put(&amp;quot;1&amp;quot;, &amp;quot;value1&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;2&amp;quot;, &amp;quot;value2&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;3&amp;quot;, &amp;quot;value3&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;2&amp;quot;, &amp;quot;value4&amp;quot;);&lt;br /&gt;
    for (Iterator it = map.keySet().iterator(); it.hasNext();) {&lt;br /&gt;
      Object key = it.next();&lt;br /&gt;
      Object value = map.get(key);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating and storing arrays in a map ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.TreeMap;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Map&amp;lt;String, int[]&amp;gt; map = new TreeMap&amp;lt;String, int[]&amp;gt;();&lt;br /&gt;
    int[] array = new int[3];&lt;br /&gt;
    array[0] = 0;&lt;br /&gt;
    array[1] = 1;&lt;br /&gt;
    array[2] = 2;&lt;br /&gt;
    map.put(&amp;quot;array&amp;quot;, array);&lt;br /&gt;
    Iterator&amp;lt;String&amp;gt; iter = map.keySet().iterator();&lt;br /&gt;
    while (iter.hasNext()) {&lt;br /&gt;
      String arrayName = iter.next();&lt;br /&gt;
      array = map.get(arrayName);&lt;br /&gt;
      System.out.print(arrayName + &amp;quot;:&amp;quot;);&lt;br /&gt;
      for (int i = 0; i &amp;lt; array.length; i++) {&lt;br /&gt;
        System.out.print(array[i]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//array:012&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Type-Specific Map [5.0] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    Map&amp;lt;Integer, String&amp;gt; map = new HashMap&amp;lt;Integer, String&amp;gt;();&lt;br /&gt;
    map.put(1, &amp;quot;first&amp;quot;);&lt;br /&gt;
    map.put(2, &amp;quot;second&amp;quot;);&lt;br /&gt;
    // map.put(1, 2); &amp;lt;- Syntax error&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Type-Specific Map: creates a map whose keys are Integer objects and values are String objects. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    Map&amp;lt;Integer, String&amp;gt; map = new HashMap&amp;lt;Integer, String&amp;gt;();&lt;br /&gt;
    map.put(1, &amp;quot;first&amp;quot;);&lt;br /&gt;
    map.put(2, &amp;quot;second&amp;quot;);&lt;br /&gt;
    // map.put(1, 2); &amp;lt;- Syntax error&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get a key from value with an HashMap ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) {&lt;br /&gt;
    Map&amp;lt;String, String&amp;gt; map = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    map.put(&amp;quot;1&amp;quot;,&amp;quot;one&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;2&amp;quot;,&amp;quot;two&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;3&amp;quot;,&amp;quot;three&amp;quot;);&lt;br /&gt;
    map.put(&amp;quot;4&amp;quot;,&amp;quot;four&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    System.out.println(getKeyFromValue(map,&amp;quot;three&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
  public static Object getKeyFromValue(Map hm, Object value) {&lt;br /&gt;
    for (Object o : hm.keySet()) {&lt;br /&gt;
      if (hm.get(o).equals(value)) {&lt;br /&gt;
        return o;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map techniques. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeMap;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Map&amp;lt;String, Integer&amp;gt; atomNums = new TreeMap&amp;lt;String, Integer&amp;gt;();&lt;br /&gt;
    atomNums.put(&amp;quot;A&amp;quot;, 1);&lt;br /&gt;
    atomNums.put(&amp;quot;B&amp;quot;, 2);&lt;br /&gt;
    atomNums.put(&amp;quot;C&amp;quot;, 3);&lt;br /&gt;
    atomNums.put(&amp;quot;D&amp;quot;, 4);&lt;br /&gt;
    atomNums.put(&amp;quot;E&amp;quot;, 5);&lt;br /&gt;
    atomNums.put(&amp;quot;F&amp;quot;, 6);&lt;br /&gt;
    System.out.println(&amp;quot;The map contains these &amp;quot; + atomNums.size() + &amp;quot; entries:&amp;quot;);&lt;br /&gt;
    Set&amp;lt;Map.Entry&amp;lt;String, Integer&amp;gt;&amp;gt; set = atomNums.entrySet();&lt;br /&gt;
    for (Map.Entry&amp;lt;String, Integer&amp;gt; me : set) {&lt;br /&gt;
      System.out.print(me.getKey() + &amp;quot;, Atomic Number: &amp;quot;);&lt;br /&gt;
      System.out.println(me.getValue());&lt;br /&gt;
    }&lt;br /&gt;
    TreeMap&amp;lt;String, Integer&amp;gt; atomNums2 = new TreeMap&amp;lt;String, Integer&amp;gt;();&lt;br /&gt;
    atomNums2.put(&amp;quot;Q&amp;quot;, 30);&lt;br /&gt;
    atomNums2.put(&amp;quot;W&amp;quot;, 82);&lt;br /&gt;
    atomNums.putAll(atomNums2);&lt;br /&gt;
    set = atomNums.entrySet();&lt;br /&gt;
    System.out.println(&amp;quot;The map now contains these &amp;quot; + atomNums.size() + &amp;quot; entries:&amp;quot;);&lt;br /&gt;
    for (Map.Entry&amp;lt;String, Integer&amp;gt; me : set) {&lt;br /&gt;
      System.out.print(me.getKey() + &amp;quot;, Atomic Number: &amp;quot;);&lt;br /&gt;
      System.out.println(me.getValue());&lt;br /&gt;
    }&lt;br /&gt;
    if (atomNums.containsKey(&amp;quot;A&amp;quot;))&lt;br /&gt;
      System.out.println(&amp;quot;A has an atomic number of &amp;quot; + atomNums.get(&amp;quot;A&amp;quot;));&lt;br /&gt;
    if (atomNums.containsValue(82))&lt;br /&gt;
      System.out.println(&amp;quot;The atomic number 82 is in the map.&amp;quot;);&lt;br /&gt;
    System.out.println();&lt;br /&gt;
    if (atomNums.remove(&amp;quot;A&amp;quot;) != null)&lt;br /&gt;
      System.out.println(&amp;quot;A has been removed.\n&amp;quot;);&lt;br /&gt;
    else&lt;br /&gt;
      System.out.println(&amp;quot;Entry not found.\n&amp;quot;);&lt;br /&gt;
    Set&amp;lt;String&amp;gt; keys = atomNums.keySet();&lt;br /&gt;
    for (String str : keys)&lt;br /&gt;
      System.out.println(str + &amp;quot; &amp;quot;);&lt;br /&gt;
    Collection&amp;lt;Integer&amp;gt; vals = atomNums.values();&lt;br /&gt;
    for (Integer n : vals)&lt;br /&gt;
      System.out.println(n + &amp;quot; &amp;quot;);&lt;br /&gt;
    atomNums.clear();&lt;br /&gt;
    if (atomNums.isEmpty())&lt;br /&gt;
      System.out.println(&amp;quot;The map is now empty.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Retrieve environment variables (JDK1.5) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    System.out.println(&amp;quot;PATH = &amp;quot; + System.getenv(&amp;quot;PATH&amp;quot;));&lt;br /&gt;
    Map env = System.getenv();&lt;br /&gt;
    for (Iterator it = env.entrySet().iterator(); it.hasNext();) {&lt;br /&gt;
      Map.Entry entry = (Map.Entry) it.next();&lt;br /&gt;
      System.out.println(entry.getKey() + &amp;quot; = &amp;quot; + entry.getValue());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sort based on the values ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.LinkedHashMap;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.util.TreeSet;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    Map&amp;lt;String, String&amp;gt; yourMap = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;
    yourMap.put(&amp;quot;1&amp;quot;, &amp;quot;one&amp;quot;);&lt;br /&gt;
    yourMap.put(&amp;quot;2&amp;quot;, &amp;quot;two&amp;quot;);&lt;br /&gt;
    yourMap.put(&amp;quot;3&amp;quot;, &amp;quot;three&amp;quot;);&lt;br /&gt;
    Map&amp;lt;String, Object&amp;gt; map = new LinkedHashMap&amp;lt;String, Object&amp;gt;();&lt;br /&gt;
    List&amp;lt;String&amp;gt; keyList = new ArrayList&amp;lt;String&amp;gt;(yourMap.keySet());&lt;br /&gt;
    List&amp;lt;String&amp;gt; valueList = new ArrayList&amp;lt;String&amp;gt;(yourMap.values());&lt;br /&gt;
    Set&amp;lt;String&amp;gt; sortedSet = new TreeSet&amp;lt;String&amp;gt;(valueList);&lt;br /&gt;
    &lt;br /&gt;
    Object[] sortedArray = sortedSet.toArray();&lt;br /&gt;
    int size = sortedArray.length;&lt;br /&gt;
    for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
      map.put(keyList.get(valueList.indexOf(sortedArray[i])), sortedArray[i]);&lt;br /&gt;
    }&lt;br /&gt;
    Set ref = map.keySet();&lt;br /&gt;
    Iterator it = ref.iterator();&lt;br /&gt;
    while (it.hasNext()) {&lt;br /&gt;
      String i = (String) it.next();&lt;br /&gt;
      System.out.println(i);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Use Iterator to loop through the HashMap class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Map errors = new HashMap();&lt;br /&gt;
    errors.put(&amp;quot;404&amp;quot;, &amp;quot;A.&amp;quot;);&lt;br /&gt;
    errors.put(&amp;quot;403&amp;quot;, &amp;quot;B.&amp;quot;);&lt;br /&gt;
    errors.put(&amp;quot;500&amp;quot;, &amp;quot;C.&amp;quot;);&lt;br /&gt;
    String errorDesc = (String) errors.get(&amp;quot;404&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;Error 404: &amp;quot; + errorDesc);&lt;br /&gt;
    Iterator iterator = errors.keySet().iterator();&lt;br /&gt;
    while (iterator.hasNext()) {&lt;br /&gt;
      String key = (String) iterator.next();&lt;br /&gt;
      System.out.println(&amp;quot;Error &amp;quot; + key + &amp;quot; means &amp;quot; + errors.get(key));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utility method that return a String representation of a map. The elements will be represented as &amp;quot;key = value&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.UnsupportedEncodingException;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
/*&lt;br /&gt;
 *  Licensed to the Apache Software Foundation (ASF) under one&lt;br /&gt;
 *  or more contributor license agreements.  See the NOTICE file&lt;br /&gt;
 *  distributed with this work for additional information&lt;br /&gt;
 *  regarding copyright ownership.  The ASF licenses this file&lt;br /&gt;
 *  to you under the Apache License, Version 2.0 (the&lt;br /&gt;
 *  &amp;quot;License&amp;quot;); you may not use this file except in compliance&lt;br /&gt;
 *  with the License.  You may obtain a copy of the License at&lt;br /&gt;
 *  &lt;br /&gt;
 *    http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *  &lt;br /&gt;
 *  Unless required by applicable law or agreed to in writing,&lt;br /&gt;
 *  software distributed under the License is distributed on an&lt;br /&gt;
 *  &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY&lt;br /&gt;
 *  KIND, either express or implied.  See the License for the&lt;br /&gt;
 *  specific language governing permissions and limitations&lt;br /&gt;
 *  under the License. &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Various string manipulation methods that are more efficient then chaining&lt;br /&gt;
 * string operations: all is done in the same buffer without creating a bunch of&lt;br /&gt;
 * string objects.&lt;br /&gt;
 * &lt;br /&gt;
 * @author &lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
  /**&lt;br /&gt;
   * Utility method that return a String representation of a map. The elements&lt;br /&gt;
   * will be represented as &amp;quot;key = value&amp;quot;&lt;br /&gt;
   * &lt;br /&gt;
   * @param map&lt;br /&gt;
   *            The map to transform to a string&lt;br /&gt;
   * @return A csv string&lt;br /&gt;
   */&lt;br /&gt;
  public static final String mapToString( Map map )&lt;br /&gt;
  {&lt;br /&gt;
      if ( ( map == null ) || ( map.size() == 0 ) )&lt;br /&gt;
      {&lt;br /&gt;
          return &amp;quot;&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      StringBuffer sb = new StringBuffer();&lt;br /&gt;
      boolean isFirst = true;&lt;br /&gt;
      Iterator iter = map.keySet().iterator();&lt;br /&gt;
      while ( iter.hasNext() )&lt;br /&gt;
      {&lt;br /&gt;
          if ( isFirst )&lt;br /&gt;
          {&lt;br /&gt;
              isFirst = false;&lt;br /&gt;
          }&lt;br /&gt;
          else&lt;br /&gt;
          {&lt;br /&gt;
              sb.append( &amp;quot;, &amp;quot; );&lt;br /&gt;
          }&lt;br /&gt;
          Object key = iter.next();&lt;br /&gt;
          sb.append( key );&lt;br /&gt;
          sb.append( &amp;quot; = &amp;quot;&amp;quot; ).append( map.get( key ) ).append( &amp;quot;&amp;quot;&amp;quot; );&lt;br /&gt;
      }&lt;br /&gt;
      return sb.toString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Utility method that return a String representation of a map. The elements will be represented as &amp;quot;key = value&amp;quot; (tab) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
import java.io.UnsupportedEncodingException;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
/*&lt;br /&gt;
 *  Licensed to the Apache Software Foundation (ASF) under one&lt;br /&gt;
 *  or more contributor license agreements.  See the NOTICE file&lt;br /&gt;
 *  distributed with this work for additional information&lt;br /&gt;
 *  regarding copyright ownership.  The ASF licenses this file&lt;br /&gt;
 *  to you under the Apache License, Version 2.0 (the&lt;br /&gt;
 *  &amp;quot;License&amp;quot;); you may not use this file except in compliance&lt;br /&gt;
 *  with the License.  You may obtain a copy of the License at&lt;br /&gt;
 *  &lt;br /&gt;
 *    http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 *  &lt;br /&gt;
 *  Unless required by applicable law or agreed to in writing,&lt;br /&gt;
 *  software distributed under the License is distributed on an&lt;br /&gt;
 *  &amp;quot;AS IS&amp;quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY&lt;br /&gt;
 *  KIND, either express or implied.  See the License for the&lt;br /&gt;
 *  specific language governing permissions and limitations&lt;br /&gt;
 *  under the License. &lt;br /&gt;
 *  &lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Various string manipulation methods that are more efficient then chaining&lt;br /&gt;
 * string operations: all is done in the same buffer without creating a bunch of&lt;br /&gt;
 * string objects.&lt;br /&gt;
 * &lt;br /&gt;
 * @author &lt;br /&gt;
 */&lt;br /&gt;
public class Main {&lt;br /&gt;
  /**&lt;br /&gt;
   * Utility method that return a String representation of a map. The elements&lt;br /&gt;
   * will be represented as &amp;quot;key = value&amp;quot;&lt;br /&gt;
   * &lt;br /&gt;
   * @param map&lt;br /&gt;
   *            The map to transform to a string&lt;br /&gt;
   * @return A csv string&lt;br /&gt;
   */&lt;br /&gt;
  public static final String mapToString( Map map, String tabs )&lt;br /&gt;
  {&lt;br /&gt;
      if ( ( map == null ) || ( map.size() == 0 ) )&lt;br /&gt;
      {&lt;br /&gt;
          return &amp;quot;&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
      StringBuffer sb = new StringBuffer();&lt;br /&gt;
      Iterator iter = map.keySet().iterator();&lt;br /&gt;
      while ( iter.hasNext() )&lt;br /&gt;
      {&lt;br /&gt;
          Object key = iter.next();&lt;br /&gt;
          sb.append( tabs );&lt;br /&gt;
          sb.append( key );&lt;br /&gt;
          Object value = map.get( key );&lt;br /&gt;
          sb.append( &amp;quot; = &amp;quot;&amp;quot; ).append( value.toString() ).append( &amp;quot;&amp;quot;\n&amp;quot; );&lt;br /&gt;
      }&lt;br /&gt;
      return sb.toString();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>