java - 如何使用 foreach 使类可迭代?

标签 java

我有这门课:

import java.util.Iterator;
import java.util.HashMap;
import java.util.Map;

public class Polynomial<T> implements Iterable<T>  {
    Map<Integer, Object> polynomial;

    public Polynomial(){
        polynomial = new HashMap<Integer, Object>();
    }
    public  Polynomial(int numberOfMembers){
        polynomial = new HashMap<Integer, Object>(numberOfMembers);
    }
    public void addElm(int power, int coefficient){
        if (power < 0) {
            power = Math.abs(power);
            throw new RuntimeException("ERROR: The power must be an absolute number, converting to absolute");
        }
        for (Map.Entry m : polynomial.entrySet()) {
            if ((Integer) m.getKey() == power){
                polynomial.put(power,m.getValue());
            }
        }
    }
    @Override
    public Iterator<T> iterator() {
        // TODO Auto-generated method stub
        return (Iterator<T>) new Object;
    }

}

这是主要功能的一部分:

 Polynomial<Integer> p1=new Polynomial<Integer>();
 for (Integer r : p1)
 System.out.println(r.toString());

正如你在上面看到的,我需要在 Polynomial 类上进行 foreach,这就是 Polynomial 实现 Iterable 接口(interface)的原因。但我的问题是我不知道如何实现 iterator() 方法。我怎样才能做到这一点?

最佳答案

你的代码非常困惑。 T是什么?为什么类中没有使用Tcoefficient 参数的用途是什么?你想做什么?

我最好的猜测是,T 是多项式系数的类型,并且您正在尝试返回一个迭代系数的迭代器。

我像这样重写了你的代码:

public class Polynomial<T> implements Iterable<T>  {
    Map<Integer, T> polynomial;

    public Polynomial(){
        polynomial = new HashMap<Integer, T>();
    }
    public  Polynomial(int numberOfMembers){
        polynomial = new HashMap<Integer, T>(numberOfMembers);
    }
    public void addElm(int power, T coefficient){
        if (power < 0) {
            throw new RuntimeException("ERROR: The power must be an absolute number");
        }
        polynomial.put(power,coefficient);
    }
    @Override
    public Iterator<T> iterator() {
        return polynomial.values().iterator();
    }

}

关于java - 如何使用 foreach 使类可迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44863045/

相关文章:

java - 为 Java 客户端实现故障转移模式的最佳方法

Java程序从用户输入中查找字符串长度

java - 如何使用 Regex 仅删除单词之间的空格而不删除数字或特殊字符之间的空格?

java - 为什么这个正则表达式不匹配?

java - 如何向 Java 应用程序添加参数

java - 当服务器不支持 TLS 1.0 时,带有目标的 HCP JEE6 应用程序失败

Java - 调用类的所有方法

将 SQL Server 打印到 CSV 的 JAVA 代码返回数据不完整

java - 如何像设置二维数组一样按 X、Y id 设置二维 vector ?

java - Paypal Android SDK 错误 "request failed with server response:shutdown" "SERVER_COMMUNICATION_ERROR"