本文共计410个文字,预计阅读时间需要2分钟。

plaintextSimplEntry类实现了Map.Entry和java.io.Serializable接口。它包含两个私有成员变量:key和value。提供两个构造方法:一个用于直接创建实例,另一个接受一个Map.Entry对象作为参数。
gistfile1.txt
class SimplEntry
implements Map.Entry
,java.io.Serializable { private final K key; private V value; //定义两个构造器 public SimplEntry(K key,V value) { this.key=key; this.value=value; } public SimplEntry(Map.Entry
entry) { this.key=entry.getKey(); this.value=entry.getValue(); } @Override public K getKey() { return key; } @Override public V getValue() { return value; } @Override public V setValue(V value) { V oldValue=this.value; this.value=value; return oldValue; } //根据key比较两个对象是否相等 public boolean equals(Object o) { if(o==this) { return true; } if(o.getClass()==SimplEntry.class) { SimplEntry se=(SimplEntry)o; return se.getKey().equals(getKey()); } return false; } //根据key计算hashcode public int hashcode() { return key==null ? 0:key.hashCode(); } public String toString() { return key+"="+value; } //继承HashSet实现一个Map public class Set2Map
extends HashSet
> { //实现清空所有key-value的方法 public void clear() { super.clear(); } //判断是否包含某个key public boolean containsKey(K key) { return super.contains(new SimplEntry
(key,null)); } //判断是否包含某个value public boolean containsValue(Object value) { for(SimplEntry se:this) { if(se.getValue().equals(value)) { return true; } } return false; } //根据指定的key取出对应的value public V get(Object key) { for(SimplEntry se:this) { if(se.getKey().equals(key)) { return (V) se.getValue(); } } return null; } //将key-value放入集合中 public V put(K key,V value) { add(new SimplEntry
(key,value)); return value; } //将另外一个key-value对放入该Map中 public void putAll(Map
m) { for(K key:m.keySet()) { add(new SimplEntry
(key,m.get(key))); } } //根据指定key删除key-value对 public V removeEntry(Object key) { for(Iterator
> it=this.iterator();it.hasNext();) { SimplEntry
en=(SimplEntry
)it.next(); if(en.getKey().equals(key)) { V v=en.getValue(); it.remove(); return v; } } return null; } public int size() { return super.size(); } } }
