Demonstrate a Map Implemented with ArrayLists
From Java Example Source Code
Contents |
[edit] Overview - Demonstrate a Map Implemented with ArrayLists
This Java example introduce a map implemented with ArrayList.
[edit] Java Source Code
- Package: com.bruceeckel
- File: SlowMap.java
package com.bruceeckel; //: c11:SlowMap.java //A Map implemented with ArrayLists. //From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 //www.BruceEckel.com. See copyright notice in CopyRight.txt. import java.util.AbstractMap; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class SlowMap extends AbstractMap { private List keys = new ArrayList(), values = new ArrayList(); public Object put(Object key, Object value) { Object result = get(key); if (!keys.contains(key)) { keys.add(key); values.add(value); } else values.set(keys.indexOf(key), value); return result; } public Object get(Object key) { if (!keys.contains(key)) return null; return values.get(keys.indexOf(key)); } public Set entrySet() { Set entries = new HashSet(); Iterator ki = keys.iterator(), vi = values.iterator(); while (ki.hasNext()) entries.add(new MPair(ki.next(), vi.next())); return entries; } public String toString() { StringBuffer s = new StringBuffer("{"); Iterator ki = keys.iterator(), vi = values.iterator(); while (ki.hasNext()) { s.append(ki.next() + "=" + vi.next()); if (ki.hasNext()) s.append(", "); } s.append("}"); return s.toString(); } public static void main(String[] args) { SlowMap m = new SlowMap(); m.put("Adobe", "Mountain View, CA"); m.put("IBM", "White Plains, NY"); m.put("Learning Tree", "Los Angeles, CA"); m.put("Microsoft", "Redmond, WA"); m.put("Netscape", "Mountain View, CA"); m.put("O'Reilly", "Sebastopol, CA"); m.put("Sun", "Mountain View, CA"); System.out.println(m); } } // /:~ class MPair implements Entry, Comparable { Object key, value; MPair(Object k, Object v) { key = k; value = v; } public Object getKey() { return key; } public Object getValue() { return value; } public Object setValue(Object v) { Object result = value; value = v; return result; } public boolean equals(Object o) { return key.equals(((MPair) o).key); } public int compareTo(Object rv) { return ((Comparable) key).compareTo(((MPair) rv).key); } }
[edit] What Result You Can Get
Run the program, you will get:
{Adobe=Mountain View, CA, IBM=White Plains, NY, Learning Tree=Los Angeles, CA, Microsoft=Redmond, WA, Netscape=Mountain View, CA, O'Reilly=Sebastopol, CA, Sun=Mountain View, CA}
[edit] Required External Library for this Java Example
Need nothing.
[edit] How to Run this Java Example Program
We recommend running this Java example program with Eclipse.
For assistance in working with Eclipse, please see How to Run Java Program with Eclipse.
It's fairly easy.
[edit] Question & Answer
Any question?
Click edit and post your question or answer here.
