java - 如何在Java中基于节点枚举对象?

标签 java parsing operators nodes enumeration

假设我像这样构建了一个整数节点:

Node<Integer> node = new Node<Integer>(0, new Node<Integer>(1, new Node<Integer>(2, null)));

并获得一个看起来像“0 ---> 1 ---> 2”的节点。

我的目标是,当我运行像 node = node * 4 + 28; 这样的命令时,节点将看起来像“28 ---> 32 ---> 36”,不使用诸如 multiply(...) 之类的函数。

也就是说,node = node * 4 + 28 而不是 node.multiply(4); node.add(28); (除非它在较大的解析函数中用作私有(private)函数 - 我希望尽可能避免使用该函数。)

有没有一种方法可以像 Java 中那样枚举节点和其他数据结构(如队列和堆栈)?

(小提示:Node 本身是通用的。不过,它不必与字符串一起使用。不过,如果可以的话那就太好了。)

提前致谢!

对于那些感兴趣的人来说,Node 看起来像这样:

public class Node<T> {
    private T info;
    private Node<T> next;
    ...
}

最佳答案

public class Node {
    private int value = 0;
    private Node next = null;
...
    public void multiply(int num) {
        value *= num;
        if (next != null)
            next.multiply(num);
    }
}

关于java - 如何在Java中基于节点枚举对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566454/

相关文章:

python - BeautifulSoup 解析返回空集

java - 将数学字符串转换为 int

java - 将数组初始值设定项直接传递给方法参数不起作用

java - 文件未找到异常没有意义(对我来说)

java - 如何为 SQL 查询转义字符串(没有准备好的语句)

c# - 如何使用infragistics语法解析引擎?

java - 当共享 JDBC 缓存存储到位时,将 "numOwners"在 Infinispan 中设置为大于 1 是否有效?

gwt 客户端中的 CSSOMParser

c++ - 为什么要在类之外定义运算符 + 或 +=,以及如何正确执行?

operators - 如何在不使用Io的情况下替换现有运算符?