java——数组的使用和注意事项

一、数组的使用

使用方式1——动态初始化数组

No1:一步初始化

数据类型[] 数组名 = new 数据类型[大小];

int n = 10;
int[] dp = new int[n];
return dp[0];

//上面两句代码可合并为
return new int[0];

No2:分两步初始化

第一步:声明数组

数据类型[] 数组名;也可以数据类型 数组名[];

第二步:创建数组

数组名 = new 数据类型[大小]

int n = 10;
int[] dp;
dp = new int[n];
return dp[0];

//上面两句代码可合并为
return new int[0];

使用方式2——静态初始化数组

数据类型[] 数组名 = {元素值,元素值…}

int[] dp = {1, 2};
return dp;

//上面两句代码可合并为
return new int[]{1, 2};

二、数组赋值机制

1) 基本数据类型赋值,这个值就是具体的数据,而且相互不影响。

2) 数组在默认情况下是引用传递,赋的值是地址。


、冒泡排序

int n = 10;
int[] arr = new int[n];
for (int i = 0; i < arr.length - 1; i++) {//外层循环是arr.length - 1次
    for (int j = 0; j < arr.length - 1 - i; j++) {//arr.length - 1 - i 次比较
        if (arr[j] > arr[j + 1]) {//如果前面的数>后面的数,就交换
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

四、数组使用的注意事项

1、数组是多个相同类型数据的组合,实现对这些数据的统一管理

2、数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

3、数组创建后,如果没有赋值,有默认值

booleanbyteshortintlongfloatdoublecharString
false00000.00.0\u0000null

4、使用数组的步骤

  • 》声明数组并开辟空间
  • 》给数组各个元素赋值
  • 》使用数组

5、数组的下标是从0开始的。

6、数组下标必须在指定范围内使用,否则报:下标越界异常

7、数组属引用类型,数组类型数据是对象(object)


五、二维数组

使用方式1——动态初始化数组

No1:一步初始化

类型[][] 数组名 = new 类型[大小][大小];

int n = 10;
int[][] dp2 = new int[n][];
return dp[0][0];

//上面两句代码可合并为
return new int[0][0];

No2:分两步初始化

第一步:先声明

类型 数组名[][];

第二步:再定义(开辟空间)

数组名 = new 类型[大小][大小];

int n = 10;
int[][] dp;
dp = new int[n][];
return dp[0][0];

//上面两句代码可合并为
return new int[0][0];

 注意:

1、二维数组定义式时,行数必须给出,列数可以不给出

2、二维数组:实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同(列数不等的二维数组)。

使用方式2——静态初始化数组

类型 数组名[][] = {{值1,值2...},{值1 ,值2...}...} ;

int[][] dp = {{1}, {1, 2}};
return dp;

//上面两句代码可合并为
return new int[][]{{1}, {1, 2}};

3、三种赋值方式

//第一种方式:定义的同时大括号直接复制
int[][] array1 = {{1, 3, 1}, {1, 5, 1}, {4, 2, 1}};
//第二种方式:先定义数组大小,然后分别赋值
int[] array2[] = new int[3][3];//定义数组维度(数组定义时两个中括号可以分开,你知道吗?)
for (int i = 0; i < array2.length; i++) {
    for (int j = 0; j < array2[0].length; j++) {
        array2[i][j] = i + j;//分别赋值
    }
}
//第三种方式:第二维的长度可以动态申请
int[][] arr3 = new int[5][];//五行的长度
for (int i = 0; i < arr3.length; ++i) {
    arr3[i] = new int[i + 1];   //列的长度每次都变化。每次都要重新申请空间(长度)
    for (int j = 0; j < arr3[i].length; ++j)
        arr3[i][j] = i + j;
}

注:第二维的长度可以动态申请 


备注:

以上若有明显错误的地方,可以私信我哦,谢谢~

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值