首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iterable & Iterator实现问题(JAVA)

Iterable & Iterator实现问题(JAVA)
EN

Stack Overflow用户
提问于 2016-03-02 15:12:54
回答 1查看 73关注 0票数 0

我是Java新手,我正在努力学习Iterable & Iterator的实现。

代码语言:javascript
复制
import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;

public class ClassMates implements Iterable{
    private String className;
    private LinkedList<String> nameList;

    public ClassMates(String className){
        this.className = className;
        this.nameList = new LinkedList<String>();
    }

    public void addName(String name){
        nameList.add(name);
    }

    public LinkedList<String> getNameList() {
        return nameList;
    }

    @Override
    public Iterator<String> iterator() {
        return new IteratorClass();
    }

    // Inner Class
    private class IteratorClass implements Iterator<String>{
        private int index;

        public IteratorClass(){
            this.index = 0;
        }

        @Override
        public boolean hasNext() {
            return index < nameList.size();
        }

        @Override
        public String next() {
            if(hasNext()){
                int i = index;
                index++;
                System.out.println("This is "+ i);
                return nameList.get(i);
            }
            throw new NoSuchElementException();
        }
        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    }
}

我的问题是:当我完成实现并尝试将for-每一个应用到“迭代”对象时,编译器说类型不匹配。

以下是应用程序的主要()执行-每个:

代码语言:javascript
复制
public class Main {

    public static void main(String[] args) {
    ClassMates classMates = new ClassMates("03-01");
    classMates.addName("Classmate 1");
    classMates.addName("Classmate 2");
    classMates.addName("Classmate 3");
    classMates.addName("Classmate 4");

    for(String name : classMates){         
    //HERE! the compiler report "String" is not match the return type of "classMates"
        System.out.println(name);
    }
}

有人能帮我指出问题吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 15:36:31

由于类将遍历字符串,因此应该指定模板类型:

代码语言:javascript
复制
public class ClassMates implements Iterable<String>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35751083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档