java - 简单的递归作用相反

标签 java recursion arraylist

所以我目前正在研究一种方法,该方法应该向前打印列表中的元素,但它们正在相反的方向打印。

例如,如果我要打印的单词是 p, e, p, p, e, r,那么输出的是 r, e, p, p, e, p (这是胡椒倒过来的)。

这是我的代码

 private void replace(RecursList<E> List, int positionChosen,
     int index){ 

  if(positionChosen >= list.elements.size()+1) return;

  if(index <= this.elements.size()) {

     this.elements.set(positionChosen,  list.elements.get(index)); 
     replace(list,++positionChosen, ++index); 

     return; 
  }
}

当我调用replace().toString()(我省略了这里的参数)时,它会向后打印。我知道这不是我的 toString() 方法,因为它适用于其他所有方法,因此它一定是我的递归调用的结构。关于可能出什么问题的任何见解?

这是我的字符串方法

private String toStringHelper(ArrayList<T> elements, int index){
  if(index>=elements.size())return "";

  String s = toStringHelper(elements, index+1);

  if(index < elements.size()-1) s+=", ";

  s+=elements.get(index).toString();

  return s; 
}

最佳答案

您的问题出在 toStringHelper 方法中。 String s = toStringHelper(elements, index+1); 行和后面的 s+=elements.get(index).toString(); 正在通过 构建答案>根据其后的所有内容将当前元素添加到后面答案后面。

将连接更改为 s = elements.get(index).toString() + s;,即前置而不是附加当前元素(和逗号)。

关于java - 简单的递归作用相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844039/

相关文章:

javascript - 从另一个树构建递归树

java - 在父类(super class) ArrayList 中调用具有统一名称的子类方法

java - 单独使用时正则表达式环视如何工作

java - 为 android 自定义选项卡标题中的文本

c# - 我如何在用户的广告中进行递归搜索,无论这是在组还是子组中?

java - Java中的Arraylist和继承

java - 随机与随机播放

java - 什么决定了在 Ubuntu 上使用哪个版本的 Java Tomcat?

java - 如何在 Hibernate 中初始化集合的集合

c++ - 递归解决一个数的指数