ArrayList 2 chiều trong Java

Vì số lượng cột là một hằng số, bạn chỉ có thể có List là int[].    import Java.util.*; //... List rowList = new ArrayList(); rowList.add(new int[] { 1, 2, 3 }); rowList.add(new int[] { 4, 5, 6 }); rowList.add(new int[] { 7, 8 }); for (int[] row : rowList) { System.out.println("Row = " + Arrays.toString(row)); } // prints: // Row = [1, 2, 3] // Row = [4, 5, 6] // Row = [7, 8] System.out.println(rowList.get(1)[1]); // prints "5"

Vì được hỗ trợ bởi List, số lượng hàng có thể tăng và thu hẹp một cách linh hoạt. Mỗi hàng được hỗ trợ bởi một int[], là tĩnh, nhưng bạn đã nói rằng số lượng cột được cố định, vì vậy đây không phải là vấn đề.

Không có mảng đa chiều trong Java, tuy nhiên, có các mảng của mảng.

Chỉ cần tạo một mảng có kích thước lớn như bạn muốn, sau đó, với mỗi phần tử, hãy tạo một mảng khác lớn hơn bạn muốn đó là một mảng.int array[][]; array = new int[10][]; array[0] = new int[9]; array[1] = new int[8]; array[2] = new int[7]; array[3] = new int[6]; array[4] = new int[5]; array[5] = new int[4]; array[6] = new int[3]; array[7] = new int[2]; array[8] = new int[1]; array[9] = new int[0];

Cách khác:List[] array; array = new List[10]; // of you can do "new ArrayList(the desired size);" for all of the following array[0] = new ArrayList(); array[1] = new ArrayList(); array[2] = new ArrayList(); array[3] = new ArrayList(); array[4] = new ArrayList(); array[5] = new ArrayList(); array[6] = new ArrayList(); array[7] = new ArrayList(); array[8] = new ArrayList(); array[9] = new ArrayList();

Thêm một ví dụ nữa cho mảng Chuỗi 2 chiều:public void arrayExam() { List A = new ArrayList(); A.add(new String[] {"Jack","good"}); A.add(new String[] {"Mary","better"}); A.add(new String[] {"Kate","best"}); for (String[] row : A) { Log.i(TAG,row[0] + "->" + row[1]); } }

Đầu ra:17467 08-02 19:24:40.518  8456  8456 I MyExam  : Jack->good 17468 08-02 19:24:40.518  8456  8456 I MyExam  : Mary->better 17469 08-02 19:24:40.518  8456  8456 I MyExam  : Kate->best

Cố gắng tạo Treemap < Integer, Treemap >

Trong Java, Treemap được sắp xếp bản đồ. Và số lượng mục trong hàng và col sẽ không làm hỏng chỉ mục 2D mà bạn muốn đặt . Sau đó, bạn có thể nhận được cấu trúc như bảng col-row.

Làm thế nào về việc tạo một lớp tùy chỉnh có chứa một mảng và sử dụng mảng của lớp tùy chỉnh của bạn.

Đây là một ví dụ đơn giản . Phương thức này sẽ trả về mảng tType 2 chiềupublic tType[][] allocate(Class c,int row,int column){ tType [][] matrix = (tType[][]) Array.newInstance(c,row); for (int i = 0; i < column; i++) { matrix[i] = (tType[]) Array.newInstance(c,column); } return matrix; }

nói rằng bạn muốn một mảng Chuỗi 2 chiều, sau đó gọi hàm này làString [][] stringArray = allocate(String.class,3,3);

Điều này sẽ cung cấp cho bạn một chuỗi Chuỗi hai chiều với 3 hàng và 3 cột; Lưu ý rằng trong Class c -> c không thể là kiểu nguyên thủy như nói, int hoặc char hoặc double. Nó phải không nguyên thủy như, String hoặc Double hoặc Integer, v.v.

Scanner sc=new Scanner(System.in) ; int p[][] = new int[n][] ; for(int i=0 ; i

Video liên quan