gpt4 book ai didi

java - (Java)计算方法的递归调用(但始终是一个新实例)

转载 作者:行者123 更新时间:2023-12-02 01:29:40 25 4
gpt4 key购买 nike

我想计算我的递归方法被输入的频率。问题是,对于每个递归调用,我都使用该类的不同实例。所以我的计数器变量将始终设置回原始值,然后只计数一次。因此,无论输入该方法的频率如何,我都会得到相同的值。

一种解决方案是创建一个新类,其中包含一个计数器变量,可以正确计数。但有更好的解决方案吗?看起来不太好看。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com