簡體   English   中英

多維數組:可變長度行?

[英]Multi-dimensional arrays: Variable length row?

可以執行可變長度列,例如:

private int k[][] = new int[3][];

for(int i = 0; i < k.length; i++) {
   k[i] = new int[i+1];
}

如果你知道列的長度,我想知道是否可以做可變長度的行?:

private int k[][] = new int[][5];

for(int i = 0; i < k.length; i++) {
   // How would you do this?
}

謝謝。

基本上你不能。 “多維”數組只是一個數組數組。 因此,您必須知道“外部”數組的大小,以便創建它。

所以你的選擇是:

  • 以反轉方式使用數組作為array[column][row]而不是array[row][column]
  • 請改用列表,以便隨時添加新行:

     List<Object[]> rows = new ArrayList<Object[]>(); for (SomeData data : someSource) { Object[] row = new Object[5]; ... rows.add(row); } 

    (或者甚至更好,在單獨的類中封裝您的“行”概念,因此您有一個List<Row> 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM