继续讲解Java知识,建议大家有一点c语言的基础,不需要多,一点点就行!
1. 数组
声明数组:int array[]; 或者:int[] array; [ ] 写在前面和后面都可以(一般写在前面)。
数组大小:声明数组后必须指定数组大小 —> new int [6]:int[] array = new int[6];
数组赋值: ①可以一个一个的赋值; ②边创建边赋值:
int[] array2 = {1,2,3,4,5,6}; //就是C语言数组
//或者
int[] array3 = new int[]{1,2,3,4,5,6};//注意开辟长度带初始化后面int[]中不能有数字,但只开辟长度就可以
总结(下面方式都可以):
//声明数组
int[] array;
//分配内存空间
array = new int[6];
//写一起
int[] array = new int[6];
//给数组赋值
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
array[5] = 6;
int[] array2 = {1,2,3,4,5,6}; //常用,就是c数组
int[] array3 = new int[]{1,2,3,4,5,6};
Arrays:数组的工具类,就是专门用来操作数组的一个工具。可以调用它里面的 toString 方法来将数组输出,因为直接输出数组的话,会输出它的地址,而不是里面的数。
- Arrays.toString(array) 将数组转化为字符串(只能针对一维数组)
- Arrays.equals(array1,array2) 判断数组是否相等,返回一个Boolean类型的值
- Arrays.sort(array) 将数组array进行升序排列。
- Arrays.fill(array,key) 将原先数组array中的数全部变成key。
- Arrays.copyOf(array,key) 将数组array进行复制,并且生成长度为key的新数组。假如新数组长度不够,会截取。
- Arrays.binarySearch(array,key) 在数组array中查找key值,并返回所在的下标。若不在就返回小于0的数。(注意:这个方法底层是基于二分查找的,因此前提就是有序,否则会出现问题)
数组名**.**length:表示数组的长度。
判断字符串数组是否已经填满:没有填满,则数组最后一个是 null ,语句 array[array.length-1] != null
注意:①只有是字符串才能用,int 类型的数组不能用null ②此时的null有可能报空指针异常,注意一下。
数组常见的错误
- 数据类型不匹配。
- 边声明边赋值的方式,代码必须写在同一行,不能换行。
- 数组下标越界。
数组的常用操作及方法
- 求数组的最大值
- 求数组的最小值
- 在数组的指定位置插入数据
- 对数组进行排序(冒泡排序是最基础的一种算法):
冒泡排序
可以按照过程,一次一次地写出来,然会再把它转化为循环体。
2. 二维数组
思维:二维数组简单理解即一维数组中保存的值是另外一个一维数组。
-
声明、开辟空间和赋值同C语言二维数组。
由于Arrays.toString方法只针对一维数组,二维数组用不了,可以这样操作:
int[][] array = {{10,20,30},{40,50}}; String str = ""; for(int i = 0; i < array.length; i++){ str += Arrays.toString(array[i]); //因为二维数组可以理解为是一维数组,只不过他的各处的元素是特殊元素—–一维数组。 } System.out.println(str); -
二维数组的长度其实取得是第一维数组的长度。
完全遍历二维数组:
int[][] array1 = {{10,20,30},{40,50}}; for(int i = 0; i < array1.length; i++){ for(int j = 0; j<array1[i].length; j++) System.out.println(array1[i][j]); }
综合练习
一个货架,有三层,每一层有6个格子,每一层的格子编号从1~6,各自里面放有鸡蛋,其中鸡蛋个数等于层数乘以格子编号,求三层中每一个格子中鸡蛋的个数和鸡蛋总数。
int[][] array = new int[3][6];
int sum = 0;
for(int i = 0;i<array.length;i++){
System.out.println("货架第"+(i+1)+"层");
for(int j=0; j<array[i].length;j++){
int num = (i+1)*(j+1);
sum += num;
System.out.println("第"+j+"个格子的鸡蛋数为:"+num);
}
}
System.out.println("鸡蛋总数是"+sum+"个");
本文详细介绍了Java中数组的概念、声明、初始化方法以及常见操作,包括一维数组和二维数组的使用技巧,并提供了实用示例。
6542

被折叠的 条评论
为什么被折叠?



