我正致力于实施Hashtable。有一个方法entrySet()将返回Map.entry的 set 。当我把这个方法放在System.out.println()方法中时,我看到的字符串看起来像这个[key = value]。我想做同样的方法。我使用了下面的代码,但结果与上面的代码有很大的不同。只是很多参考 HashEntry类而不是带键的值。我能做些什么来达到我想要的目标?
public Set<HashEntry> entrySet(){
Set<HashEntry> set = new AbstractSet<HashEntry>(){
@Override
public Iterator<HashEntry> iterator(){
return new Iterator<HashEntry>(){
int pos = 0;
@Override
public boolean hasNext(){
return globalArray.length>pos;
}
@Override
public HashEntry next(){
return globalArray[pos++];
}
@Override
public void remove() {
throw new UnsupportedOperationException("Cannot remove an element of an array.");
}
@Override
public String toString(){
return globalArray[pos].getValue() + "=" + globalArray[pos].getKey();
}
};
}
@Override
public int size(){
return size;
}
};
return set;
}
HashEntry类:
public class HashEntry{
private int key;
private Object value;
public HashEntry(int key, Object value){
this.key = key;
this.value = value;
}
public int getKey(){
return this.key;
}
public Object getValue(){
return this.value;
}
public void setKey(int key){
this.key = key;
}
}