Java 集合框架無原生二維向量,常用兩種輕量級模擬方案:
Vector<Vector<Object>> matrix = new Vector<>();
for (int i = 0; i < rows; i++) {
Vector<Object> row = new Vector<>();
for (int j = 0; j < cols; j++) row.add(null); // 初始化列
matrix.add(row);
}
// 訪問 matrix.get(rowIndex).get(colIndex)
優點:動態擴容、索引訪問 O(1)、保留插入順序。缺點:非同步 (Vector 同步開銷大),現代代碼建議用 ArrayList<ArrayList<E>> 替代。
Map<String, Vector<Object>> matrix = new HashMap<>();
matrix.put("row0", new Vector<>(Arrays.asList("a", "b", "c")));
matrix.put("row1", new Vector<>(Arrays.asList("d", "e")));
// 訪問 matrix.get("row0").get(1) -> "b"
優點:行名可讀、稀疏數據存儲高效 (僅存非空行)。缺點:行順序無保證 (需 LinkedHashMap)、列訪問仍需列索引。
List<List<E>> (ArrayList 嵌套) 或一維數組 E[] data = new E[rows * cols] 手動計算下標 row * cols + col (最高性能、緊湊內存)。Map<Integer, Map<Integer, E>> (行號→列號→值) 或專用庫 (如 Apache Commons Math OpenMapRealMatrix、Colt、ND4J)。原帖示例僅演示概念,實際項目請根據數據密度、運算需求、性能指標選型。