Bug 32254 [Viewers] AbstractTreeViewer uses HashSet to remember expansion state
I20030216 The custom hash table should be used instead. Otherwise expansion state may be lost due to a different equals implementation of the element and the IElementComparer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java
/**
	 * Remove the key/value pair with the specified key from this Hashtable.
	 *
	 * @param		key	the key to remove
	 * @return		the value associated with the specified key, null if the specified key
	 *				did not exist
	 */
	public Object remove(Object key) {
		HashMapEntry last = null;
		int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
		HashMapEntry entry = elementData[index];
		while (entry != null && !keyEquals(key, entry.key)) {
			last = entry;
			entry = entry.next;
		}
		if (entry != null) {
			if (last == null) elementData[index] = entry.next;
			else last.next = entry.next;
			elementCount--;
			return entry.value;
		}
		return null;
	}
	
	/**
	 * Answers the number of key/value pairs in this Hashtable.
	 *
	 * @return		the number of key/value pairs in this Hashtable
	 */