如果列为什么,如何打印第一列,然后打印第二列?
因此基本上arr[0][0]
到arr[0 to 7][0]
然后存在
arr[0,2,3,5][1]
然后arr[2,5][2]
然后arr[2][3]
但是以动态方式,因为每次执行的长度都不同
String[][] arr = new String [7][];
arr[0]=new String[2];
arr[1]=new String[1];
arr[2]=new String[4];
arr[3]=new String[2];
arr[4]=new String[1];
arr[5]=new String[3];
arr[6]=new String[1];
arr[7]=new String[1];
答案 0 :(得分:0)
我不确定这是不是你想要的。该代码包含两个方法,逐行和逐列显示锯齿状数组。
public class JavaApplication1 {
private String[][] generateArray(int rows, int maxColumns) {
String[][] array = new String[rows][];
for(int i = 0; i < rows; i++) {
int columns = (int) (Math.random() * maxColumns) + 1;
String[] innerArray = new String[columns];
for(int j = 0; j < columns; j++) {
innerArray[j] = String.format("Row: %d Column: %d", i, j);
}
array[i] = innerArray;
}
return array;
}
private void printByRows(String[][] jaggedArray) {
for(int i = 0; i < jaggedArray.length; i++) {
String rowText = "";
for(int j = 0; j < jaggedArray[i].length; j++) {
rowText += String.format("%s\t", jaggedArray[i][j]);
}
System.out.println(rowText);
}
}
private void printByColumns(String[][] jaggedArray) {
int maxColumns = 0;
for(int i = 0; i < jaggedArray.length; i++) {
maxColumns = Math.max(jaggedArray[i].length, maxColumns);
}
for(int i = 0; i < maxColumns; i++) {
String text = "";
for(int j = 0; j < jaggedArray.length; j++) {
if (i < jaggedArray[j].length) {
text += String.format("%s\t", jaggedArray[j][i]);
}
}
System.out.println(text);
}
}
public void run() {
String[][] array = generateArray(8, 5);
System.out.println("Array row by row");
printByRows(array);
System.out.println("Array column by column");
printByColumns(array);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new JavaApplication1().run();
}
}
答案 1 :(得分:0)
private void printByColumns(String[][] jaggedArray) {
int maxColumns = 0;
for(int i = 0; i < jaggedArray.length; i++) {
maxColumns = Math.max(jaggedArray[i].length, maxColumns);
}
for(int i = 0; i < maxColumns; i++) {
String text = "";
for(int j = 0; j < jaggedArray.length; j++) {
if (i < jaggedArray[j].length) {
text += String.format("%s\t", jaggedArray[j][i]);
}
}
System.out.println(text);
}
}