【问题标题】:How would you go about printing an arrayList recursively in Java? [closed]您将如何在 Java 中递归地打印 arrayList? [关闭]
【发布时间】:2015-12-03 10:22:57
【问题描述】:

我刚接触 Java 编程,最近接触了递归。我的问题是如何递归打印 arrayList?

【问题讨论】:

  • 使用 java 是可能的......向我们展示你的努力。
  • 听起来像是一些(荒谬的)家庭作业。
  • 在我看来,我不会递归地打印 arrayList。我会通过迭代将其打印出来。递归更适合树。
  • 您必须递归执行此操作吗?或者另一种方式也可以吗?在那个 cas 中查看 foreach 循环
  • 看起来像 this question 的副本

标签: java arrays recursion arraylist printing


【解决方案1】:

我不同意这种在列表中打印值的方法,而是一种快速的 sn-p。

main(String args[]){
    int i =0;
    printRec(list, i);
}

public static void printRec(List<String> values, int count){
    if (values.size() < 0 || count >= values.size()) {
        return;
     }
  System.out.println(values.get(count));
  printRec(values, count+1);
}

【讨论】:

  • values.size() 返回小于零的可能性不大。如果您的意思是count,则可能应该抛出异常。
  • @Tom 是的,你是对的,这只是一个快速的 sn-p.. 必须有一个 try catch。无论如何,我不知道为什么有人会递归地遍历一个列表并且强烈不推荐这个。
【解决方案2】:

您可以使用循环和索引来打印列表中的元素

   import java.util.ArrayList;

public class Program {
    public static void main(String[] args) {

    // Create new ArrayList.
    ArrayList<Integer> elements = new ArrayList<>();

    // Add three elements.
    elements.add(10);
    elements.add(15);
    elements.add(20);

    // Get size and display.
    int count = elements.size();
    System.out.println("Count: " + count);

    // Loop through elements.
    for (int i = 0; i < elements.size(); i++) {
        int value = elements.get(i);
        System.out.println("Element: " + value);
    }
    }
}

【讨论】:

  • 方法的长度是多少。 Array 和 List 不支持 Length 之类的东西
  • 看起来有点像 C#。甚至不能在 Java 中对 List 执行 []。 :(
  • @Stefan Beike:长度是 C# 列表的属性。它不是java,你可以从大写字母和变量的用法中看到,而在Java中会使用.getLength()。实际上 Java 在列表中使用 size()。
  • 我已经编辑了我的答案,你现在可以试试这个
【解决方案3】:

响应递归打印:

  • 写一个取列表的方法,以及一个起始编号

  • 如果开始大于列表大小,则什么都不做

  • 否则,把元素写在start上,用start + 1调用同样的方法

【讨论】:

    【解决方案4】:

    你也可以使用 foreach 循环

    foreach(string items in yourlist)
    {
        System.out.Println(items);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 2021-02-10
      • 2018-02-23
      • 1970-01-01
      • 2020-03-17
      相关资源
      最近更新 更多