我想计算我的递归方法被输入的频率。问题是,对于每个递归调用,我都使用该类的不同实例。所以我的计数器变量将始终设置回原始值,然后只计数一次。因此,无论输入该方法的频率如何,我都会得到相同的值。
一种解决方案是创建一个新类,其中包含一个计数器变量,可以正确计数。但有更好的解决方案吗?看起来不太好看。
static class SearchTree
{
private Node node;
private SearchTree left;
private SearchTree right;
private int count= 0;
这是我想使用计数变量的方法。它总是显示 1,因为我通过 SearchTree 的新实例递归地使用它
public SearchTree select(int i)
{
if(node.size != 0)
{
count++;
System.out.println("Count: " + count);
left.select(i);
}
private class Node
{
public int key;
public int size;
public Node(int x, int size)
{
key = x;
this.size= size;
}
}
}
最佳答案
count
必须是 class variable 。您可以使用关键字 static
声明类变量:
private static int count = 0;
关于java - (Java)计算方法的递归调用(但始终是一个新实例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56305010/