Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建阵列过滤器<;E>;等级_Java - Fatal编程技术网

Java 创建阵列过滤器<;E>;等级

Java 创建阵列过滤器<;E>;等级,java,Java,我正在创建一个ArraySetterator类,但在使用next()方法时遇到了问题。 我做了一些研究,但似乎什么都不管用。我相信这是一段简单的代码,但我似乎无法理解 private class ArraySetIterator <E> implements Iterator <E> { private ArraySet<E> set; private int index = 0; public ArraySetIterat

我正在创建一个ArraySetterator类,但在使用next()方法时遇到了问题。 我做了一些研究,但似乎什么都不管用。我相信这是一段简单的代码,但我似乎无法理解

    private class ArraySetIterator <E> implements Iterator <E> {

    private ArraySet<E> set;
    private int index = 0;

    public ArraySetIterator(ArraySet<E> set) {
        this.set = set;
    }

    public boolean hasNext() {
        return (index + 1) < set.size();
    }

    public E next() {
      ???
    }

    public void remove() {
        set.remove(index);
    }
}
私有类ArraySetIterator实现迭代器{
专用阵列集;
私有整数指数=0;
公共阵列设置器(阵列设置集){
this.set=set;
}
公共布尔hasNext(){
返回(索引+1)
next()
应增加索引并返回当前元素。此外,如果没有更多的元素可以迭代,它应该抛出
NoSuchElementException

这是有效的:

public E next() {
  return set.get(index++);
}
您可能还需要考虑检查
hasNext()
是否为真

编辑:根据您的评论,您的
ArraySet
似乎只实现了
集合
。因此,您不能使用
.get()
。我认为你需要做这样的事情:

private class ArraySetIterator <E> implements Iterator <E> {

    private E[] set;
    private int index = 0;

    public ArraySetIterator(ArraySet<E> set) {
        this.set = (E[]) set.toArray();
    }

    public boolean hasNext() {
        return (index + 1) < set.length;
    }

    public E next() {
        if(hasNext) {
           return set[index++];
        } else {
           throw new NoSuchElementException();
        }
    }

    public void remove() {
        throw new UnsupportedOperationException();
    }
}
私有类ArraySetIterator实现迭代器{
专用E[]集;
私有整数指数=0;
公共阵列设置器(阵列设置集){
this.set=(E[])set.toArray();
}
公共布尔hasNext(){
返回(索引+1)
谢谢!“我以前很接近,但现在说得通了。”丹恩斯:没问题。确保对任何您认为有用的答案进行投票,并接受您认为最好的答案。轻微问题-尝试编译并出现错误“找不到符号-方法get(int)”。@Dan_ENZ是您正在使用的
ArraySet
的实现吗?是你自己写的吗?