JAVA中如何创建一个二维数组,然后给二维数组赋值!

Python048

JAVA中如何创建一个二维数组,然后给二维数组赋值!,第1张

1,创建二维数组语句:int[][] array = new int[3][3]

2,直接创建二维数组并赋值语句:int[][] array ={{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}

二维数组,也可以理解为用一维数组保存的元素为一维数组。对于三维数组,等等,都可以这样划分。不过我们在编程中使用三维以上的数组比较少。因为那样使用起来非常不方便。下面我们来学习二维数组的声明。其声明同一位数组一样,可以先声明再分配内存,也可以声明时分配内存

第一种,先声明再分配内存的方式

数组声明: 数据类型 数组名[][]

内存分配: 数组名 = new 数据类型[行的个数][列的个数]

举例: 假如我们需要统计一个象棋上放的是黑棋还是白棋。这时,我们可以建立一个坐标,即以象棋盘的两边建立坐标轴。这时,我们可以这样定义这个二维数组:

声明数组: int Chess[][]

内存分配Chess= new int[64][64]

第二种,即声明时即分配内存的方式。

使用格式是: 数据类型 数组名[][] =new 数据类型 [行的个数][列的个数]

使用上个步骤中的例子,我们可以将数组的声明和分配内存写成以下方式:

声明即分配内存:int Chess[][] = new int[64][64]

二维数组的赋值,同一维数组类似。只是在{}中的每个元素又是每个一维数组。如下格式:

数据类型 数据名[][]={

{值1,值2,值3,值4 },//第一行数据

{值5,值6,值7,值8}, //第二行数据

...,

}

二维数组中,可以有列数不相等的数组。即每一行的列数不同时。我们需要对每一行进行赋值。

对于这两种二维数组。我们分别来进行分别举例进行赋值。第一种是:列数相同的数组

其赋值格式如下:

String ClassRoom[][]={

{"小王","小李","小张"},

{"小红","小明","小花"},

}

即第一行的人数和第二行的人数相同。

第二种:即列数不相等的数组的赋值格式如下:

String ClassRoom[][]={

{"小王","小李","小张"},

{"小红","小明","小花"},

{"小雨","小风","小平","小雷"},

{"小单"}

}

看上述例子。对于不同的行,其相应的列数是不同的。

再建一个3行5列数组,然后把原来的数据考进去,第三行第五列就可以加入你要的数据了。

或者你先建个5列的一维数组。拷贝第三行到一维数组,在一位数组最后加上新数字,再复制给原来的二维数组,

int [][]arr1={{ 1, 2, 3, 4 },{ 5, 6, 7, 8 }, { 9, 10, 11, 12 }}

int arr2[]=new int[5]

for(int i=0i<arr1[2].lengthi++){

arr2[i]=arr1[2][i]

}

arr2[4]=1111

arr1[2]=arr2

import java.sql.Connection

import java.sql.DriverManager

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.SQLException

import java.util.LinkedList

import java.util.List

public class DataToArray {

    public static void main(String[] args) throws Exception {

        String url = "jdbc:mysql://localhost:3306/test"// 改成你的数据库连接

        Connection conn = DriverManager.getConnection(url, "root", "fuhaiwei")// 改成你用户名密码

        String sql = "select * from user"// 改成你的查询语句

        PreparedStatement prestmt = conn.prepareStatement(sql)

        ResultSet rs = prestmt.executeQuery()

        Object[][] data = getDataArray(rs)

        printArray(data)

        rs.close()

        prestmt.close()

        conn.close()

    }

    private static void printArray(Object[][] data) {

        for (int i = 0i <data.lengthi++) {

            for (int j = 0j <data[i].lengthj++) {

                System.out.print(data[i][j] + " ")

            }

            System.out.println()

        }

    }

    private static Object[][] getDataArray(ResultSet rs) throws SQLException {

        List<Object[]>list = new LinkedList()

        while (rs.next()) {

            // 改成你的列名

            Object[] objects = new Object[] { rs.getInt("id"), rs.getString("username"),

                    rs.getString("password") }

            list.add(objects)

        }

        return list.toArray(new Object[0][0])

    }

}

输出效果: