Java 简单递归反作用

Java 简单递归反作用,java,recursion,arraylist,Java,Recursion,Arraylist,因此,我目前正在研究一种方法,该方法应该以正向打印列表中的元素,但它们以相反的方向打印 例如,如果我要打印的单词是p,e,p,p,e,r,那么输出的是r,e,p,p,e,p,p,p,p,这是胡椒粉的倒序 这是我的密码 private void replace(RecursList<E> List, int positionChosen, int index){ if(positionChosen >= list.elements.size()+1) retu

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

例如,如果我要打印的单词是p,e,p,p,e,r,那么输出的是r,e,p,p,e,p,p,p,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方法,因为它适用于其他任何东西,所以它必须是我递归调用的结构。对可能出现的问题有何见解

这是我的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; 
}
您的问题在于ToString-Helper方法。行字符串s=tostringhelprelements,索引+1;后跟s+=elements.getindex.toString;根据答案后面的所有内容,将当前元素添加到答案后面来构造答案


将串联更改为s=elements.getindex.toString+s;,i、 例如,在前面加上当前元素和逗号,而不是在后面加上它们。

您的问题中有几个部分可以从澄清中受益。1您的replace方法引用了实例数据this.elements和本地参数recurseList中的数据-为什么?2.this.elements类型是什么?它指的是什么?3您的toString-Helper方法和可能重载的toString方法之间的关系是什么?后者如何称呼前者?4具体来说,如何调用replace和toString(包括参数)?您提供的replace.toString调用将不会编译,因为replace返回void。