本文共 2099 字,大约阅读时间需要 6 分钟。
数组
数组是表示多个相同类型变量的集合(在一个数组中所存放的所有元素的类型必须一致),可以使用共同的名字引用它,属于复杂数据类型.Java数组是固定的不能扩展数组是存放在堆中的,所以在声明数组时,需要定义数组的长度,即在堆中开辟出一个空间【数组的长度一旦声明,不能修改;如果需要修改则需要自行编程实现,这里实际是新创建一个数组,长度是修改后的长度,也就是说替换之前的数组】
数组的声明格式:
(1.)类型[] 变量名
(2.)类型 变量名 []
数组的赋值:
(1.)动态赋值过程:真正的含义是需要先去申请一个堆空间。然后对堆空间中的内容进行一个一个赋值的过程
类型[] 变量名 = new 类型[容量]
(2.)静态赋值过程
类型[] 变量名 ={};
(3.)动静混合赋值过程:
类型[] 变量名 = new 类型[容量]; 变量名 = new 类型{};
数组的初始化
数组中的元素可以通过下标进行访问,访问的语法为: 数据变量的名称[下标]
数组中的所有元素将被初始化为零。数组的下标是从0开始的,除过数据库是从1开始,其余都是从0开始;
就对于一维数组而言:
定义了数组之后,即开辟了堆中的空间后 ,即不赋初值,但是数组中默认为0;也就是说现在输出一下数组。显示的不为null而是0
对数组的操作
(1.)定位
(2.)求长
(3.)替换
二维数组
定义:以一维数组为元素的一维数组
声明格式:
(1.)类型 【】 【】 变量名 (2.)类型 变量名 【】 【】
小练习
(1.)数组的反转
package cutestFox01;//数组的反转import java.util.Arrays;public class Test009 { public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,85,78,17,171,8,9}; for(int i=0;i
(2.)定义一个二维数组,对其里面的值按从大到小的格式输出
package cutestFox01;import java.util.Arrays;public class Test013 { public static void main(String[] args) { int arrays[][] = { { 1, 2, 3, 4, 5, 6 }, { 6, 5, 4, 7, 1, 46 }, { 1, 1, 1, 1, 1 }, { 0 }, { 1 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, { 100, 1 }, { 1, 1, 1, 1, 1, 10000000 } }; for (int i = 0; i < arrays.length; i++) { for (int j = 0; j < arrays.length; j++) { int sumI = 0; int sumJ = 0; for (int m = 0; m < arrays[i].length; m++) { sumI += arrays[i][m]; } for (int m = 0; m < arrays[j].length; m++) { sumJ += arrays[j][m]; } if (sumI > sumJ) { int[] temp = arrays[i]; arrays[i] = arrays[j]; arrays[j] = temp; } } } for (int i = 0; i < arrays.length; i++) { for (int j = 0; j < arrays[i].length; j++) { System.out.print(arrays[i][j] + " "); } System.out.println(); } }}
(3.)利用二维数组 实现关灯小游戏
package cutestFox01;import java.util.Scanner;//关灯public class Test014 { public static void main(String[] args) { int [][] arrays = { {0,0,1,0,0}, {0,1,1,1,0}, {0,0,1,0,0}, {0,0,0,0,0}, }; for(int i=0;i=0) { arrays[r-1][c] = 1-arrays[r-1][c]; }if(r+1 =0) { arrays[r][c-1] = 1-arrays[r][c-1]; }if(c+1
转载地址:http://tgcki.baihongyu.com/