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

标签 java recursion methods count instance

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

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

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/

相关文章:

php递归无限页面加载

c# - 为什么在 Lambda 表达式中使用方法?

java - 输出图形的方法

java - 自定义 Java Swing GUI 与 Netbeans 拖放编辑器

java - 是什么导致了这个 "unchecked cast"警告?

java - 如何通知 MediaStore 某些项目已删除?

linux - ls -R忽略特定目录

javascript - 显示多个对象的内容?

java - 尝试创建错误检查方法,以使计数器在计数器为0时不递减

java - MySQL中如何处理锁定帐户