Hashtable中的EntrySet方法实现

时间:2017-09-26 20:57:19

标签: java

我正致力于实施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;
    }

}

0 个答案:

没有答案