Re: How do I set up CollapsableHashtable to take parameters?
phillip.s.powell@gmail.com wrote:
package com.ppowell.tools.CollectionTools;
the convention is all lower case for package names. It's confusing to
start doing something else.
"util" or better "collection" would be more conventional than "tools".
"Tools" generally refers to code not used at application runtime.
public class CollapsableHashtable<K, V> extends Hashtable<K, V> {
public void removeAll() {
clear() would make more sense. Only it's there already...
The main point of still using Hashtable instead of HashMap is that
Hashtable methods are generally synchronized. So, it would make sense
for this method to be synchronized to.
Enumeration keys = this.keys();
Enumeration<K> would be better.
while (keys.hasMoreElements()) {
remove(keys.nextElement());
}
Mixing operations on a Enumeration/Iterator and the original object is
asking for trouble. Fortunately Iterator has a remove method.
A better way to write this would be entrySet().clear(); (or
keySet().clear();). If really want to use a loop:
for (
Iterator<K> iter = keySet().iterator();
iter.hasNext();
) {
iter.remove();
}
but it's more efficient to do it in one go.
com.ppowell.tools.CollectionTools.CollapsableHashtable does not take
parameters
private Hashtable<String, CollapsableHashtable<String, String>>
phraseHash;
Are you sure you have the up to date version compiled? The obvious
problem is not forcing a recompile. I suggest making sure your .class
files are deleted and having another go.
Tom Hawtin