如何使用锯齿数组或指针数组在 Java 中实现 Rootish 数组堆栈数据结构

How to implement Rootish Array Stack Data Structure in Java, using jagged array or pointer array

基本上我只想知道我怎样才能得到一个包含另一个数组的数组,我可以缩小或扩大它,例如 A{a,b,c,d} a{0}, b{ 1,2} c{3,4,5} d{6,7,8,9} 。如果我想在其中添加另一个整数,那么我可以增长它 A{a,b,c,d,e} a{0}, b{1,2} c{3,4,5} d{6, java.

中的 7,8,9} e{10}

Rootish Array Stack 基本上是一个类似于数组的数据结构,它以我上面提到的方式存储数组.....

我尝试使用锯齿状数组,但我无法扩大或缩小它

这简直就是一个List of List。您可以从下面的示例代码中获得帮助。 List 的大小可以随着 add/remove 个元素的增加或减少。

List<List<Integer>> listOfLists = new ArrayList<List<Integer>>();

import java.util.ArrayList;
import java.util.List;

public class ListOfLists {

  public static void main(String args[]) {
    List<List<Integer>> listOfLists = new ArrayList<List<Integer>>();

    List<Integer> aList = new ArrayList<Integer>();
    List<Integer> bList = new ArrayList<Integer>();
    List<Integer> cList = new ArrayList<Integer>();
    List<Integer> dList = new ArrayList<Integer>();

    aList.add(0);
    bList.add(1); bList.add(2);
    cList.add(3); cList.add(4); cList.add(5);
    dList.add(6); dList.add(7); dList.add(8); dList.add(9);

    listOfLists.add(aList);
    listOfLists.add(bList);
    listOfLists.add(cList);
    listOfLists.add(dList);

    for (List<Integer> list : listOfLists) {
      for (Integer i : list) {
        System.out.print(i + "\t");
      }
      System.out.println();
    }
  }
}