有关迭代器iterator的java实现的问题

问题描述

有关迭代器iterator的java实现的问题
    public Iterator<Item> iterator(){
   return new ArrayIterator();
}
private class ArrayIterator implements Iterator<Item>{
    private int[] random;
    private int current = 0;    //line: 47
    random = new int[N];
    for(int i = 0; i < N; i++)
        random[i] = head + i;
    StdRandom.shuffle(random);
    public boolean hasNext(){        //line:52
        return current != (N - 1);
    }
    public void remove(){ }
    public Item next(){
        return RQ[random[current++]];
    }
}

错误报告
File: C:UsersCHNalgs4RandomizedQueue.java [line: 47]
Error: Syntax error on token ";", { expected after this token
File: C:UsersCHNalgs4RandomizedQueue.java [line: 52]
Error: Syntax error, insert "VariableDeclarators" to complete LocalVariableDeclaration
File: C:UsersCHNalgs4RandomizedQueue.java [line: 52]
Error: Syntax error, insert ";" to complete LocalVariableDeclarationStatement
File: C:UsersCHNalgs4RandomizedQueue.java [line: 52]
Error: Syntax error on token "{", ; expected

总报告缺分号、花括号之类的
但像这样的又可以( 不是同一个类里的):
public Iterator iterator(){
return new ListIterator();
}
private class ListIterator implements Iterator{
private Node current = first;
public boolean hasNext(){
return current != null;
}
public void remove(){ }
public Item next(){
Item item = current.item;
current = current.next;
return item;
}
}

对java一知半解,求解答,谢谢。

解决方案

你这个连括号分号都没有配对,估计是粘贴代码都没有粘贴全,属于很低级的一类错误,先排除了这样的错误再说。

解决方案二:


这个括号没错吧

解决方案三:

解决方案四:

解决方案五:

另外该有分号都有了吧
复制什么啊 大神也不能这样侮辱人啊
我承认我小白,但都自己构思自己写的
那个链表迭代器书里的,我做练习时看一下都不行啊,一个随机删取数的队列

解决方案六:

用工具栏上的代码按钮,将你完整的代码包裹在里面,贴在这里。

解决方案七:

/**

  • Auto Generated Java Class.
  • 2015.3.7
    */
    import java.util.Iterator;

public class RandomizedQueue implements Iterable{
private Item[] RQ;
private int N;
private int head;
private int tail;
public RandomizedQueue (){
RQ = (Item[]) new Object[1];
N = 0;
head = 0;
tail = 0;
}
public boolean isEmpty(){
return N == 0;
}
public int size(){
return N;
}
public void enqueue(Item item){
if(N == RQ.length)
resize(2*RQ.length);
RQ[++tail] = item;
N++;
}
public Item dequeue(){
int RN;
RN = StdRandom.uniform(head, tail);
RQ[RN] = null;
move(RN);
if(N > 0 && N == RQ.length/4)
resize(RQ.length);
return RQ[RN];
}
public Item sample(){
return RQ[StdRandom.uniform(head, tail)];
}
public Iterator iterator(){
return new ArrayIterator();
}
private class ArrayIterator implements Iterator{
private int[] random;
private int current = 0;
random = new int[N];
for(int i = 0; i < N; i++)
random[i] = head + i;
StdRandom.shuffle(random);
public boolean hasNext(){
return current != (N - 1);
}
public void remove(){ }
public Item next(){
return RQ[random[current++]];
}
}
private void move(int x){
}
private void resize(int max){
}
}


//这两个函数还没写,另外使用了普林斯顿的库 stdlib.jar

解决方案八:

有一些显示不了 怎么弄啊 谢谢你

解决方案九:


那个的泛型不见了

解决方案十:

时间: 2024-09-22 14:34:52

有关迭代器iterator的java实现的问题的相关文章

JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用

JAVA之旅(十八)--基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用 JAVA把完事万物都定义为对象,而我们想使用数据类型也是可以引用的 一.基本数据类型的对象包装类 左为基本数据类型,又为引用数据类型 byte Byte int Integer long Long boolean Booleab float Float double Double char Character 我们拿Integer来举例子 //整

java集合迭代器Iterator中的remove陷阱_java

package TestList; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.TreeSet; public class TestIterator {     /**      * @param args      */     public static void main(String[] args) {         // TODO Auto

C++中const 与 迭代器(iterator) 使用 详解

迭代器(iterator) 是一种指针类型, 也分const指针本身(地址) 和 const指针所指的值, 两种情况; 但是写法和const内置指针有所不同; char * const 相当于 const container<>::iterator; 可以修改指针所指的值, 但不能修改指针的地址; const char * 相当于 container<>::const_iterator; 可以修改指针地址, 但不能修改指针所指的值; 注意代码示例, 两种const和迭代器; 代码:

迭代器 iterator

迭代器 iterator 反向迭代器 对于反向迭代器it,++it会移动到上一个元素:--it会移动到下一个元素. 虽然颠倒递增和递减运算符的含义可能看起来令人混淆,但这样做可以用算法透明地向前或向后处理容器. const_iterator 迭代器失效 一些删除操作会导致某些迭代器对象失效. 可参见vector的erase()函数. http://blog.csdn.net/chuchus/article/details/23037107

迭代器Iterator的底层实现原理

第一步:没有接口的迭代器简单实现原理   1 package com.bjsxt.xiaofei; 2 /** 3 * 迭代器底层原理 4 * 方法: 5 * hasNext() 6 * next() 7 * remove() 8 * @ClassName: MyAarryList 9 * @Description: TODO(这里用一句话描述这个类的作用) 10 * @author 尚晓飞 11 * @date 2014-7-29 下午7:06:09 12 * 13 */ 14 public

C++中正则表达式(regex) 迭代器(iterator) 详解

正则表达式(regex), 使用boost的regex头文件, 是C++11的新标准, 但是gcc4.8.1并未完全支持, 所以使用boost库; 具体安装: http://blog.csdn.net/caroline_wendy/article/details/17282187 正则表达式的书写规范, 以ECMAScript为例, 使用迭代器可以遍历原字符串, 输出符合要求的所有字符串; 使用prefix()和suffix()方法, 可以输出前一个未匹配的字符串和后一个未匹配的字符串; 正则表

举例讲解Ruby中迭代器Iterator的用法_ruby专题

Iterator 定义 A Ruby iterator is simple a method that can invoke a block of code.         Block 一般是跟着 method 出现的, 并且 block 中的代码不一定会执行         如果 method 中有 yield, 那么它的block 中的代码会被执行         Block 可以接收参数,和返回 value def two_times yield yield end two_times

内部类+迭代器设计模式的java实现。。。

interface Iterator{   void next() ;   Object current() ;   boolean end() ; } class Sequence {   Integer []buf  ;  int length =0 ;  Sequence(int len) {   buf=new Integer[len] ;  }  Iterator getIterator() {   return new  SequenceIterator() ;  }  public

详解Java中Iterator迭代器的用法_java

迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承