前言
上周末因为参加蓝桥杯 导致自己一直没时间写博客。也欠下了不少博客,今天我又一次凯旋归来!!!!!!!!!!!!
数组总纲
数组就是多个相同类型的数据 放在一起,为了简单方便,而被创造出来的一个类型呗,他不是基本数据类型 我们用数组可以实现多个变量的 “批量” 创建和修改!
记住关键字眼哦,相同类型,必须相同类型,其实学完你会发现,数组根本没法弄不同类型的数据啊!!书上还一本正经的说:在 Java 中, 数组中包含的变量必须是 相同类型(相同类型还给我加粗)牛类很啊!
一维数组
首先介绍一下一维数组吧
创建方法
java中创建一维数组的方法有三种:下面看代码。
public static void main(String[] args) {
//第一种 直接创建并初始化,称为静态初始化
int[] array1 = {1,2,3,4};
//第二种 使用关键字new 在堆区创建一个 数组。
int[] array2 = new int[3];
//第三种 和第二种相同 只不过初始化一下
int[] array3 = new int[]{1,2,3};
}
其中第二种方法 是有初始值的,因为他是在堆区,堆区系统自动初始化。下面我讲第一种和第三种方法屏蔽 大家看第二种方法的结果!
在这里可以看出,数组内的元素自动被赋值为了 0 .所以在这里我说一下,堆区变量 自动初始化赋值为0;
扩展:
Arrays.toString(array2) 的意思。就是将array2内的元素转换为字符串类型。返回值为字符串
数组的使用
在使用过程中一般是与for循环嵌套使用的 比如以下代码。
切记一点 在这里不要越界,比如我们有三个元素,arr[0],arr[1],arr[2] 三个元素,arr[4] 便不属于该 数组使用便会有异常,也叫做数组越界 或溢出。
注意事项
- 使用 arr.length 能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.
- 2.使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数
- 使用 [ ] 操作既能读取数据, 也能修改数据. 4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常
数组作为方法参数
首先看下图代码
我们如果这样实现代码,你会发现,交换数据是没法包装成一个方法的。而使用数组呢?
虽然我知道代码很挫。但是 通过这个我们可以理解到,数组名代表数组的地址,而传递过去的参数也是地址 再改变参数自然就是从地址将其改变。
数组作为方法返回值
其实这个代码特别好理解,。就是将数组返回 赋值给另一个数组。我相信大家学起来so easy;
小练习
一维数组学的差不多了。下面我们来了做一个小练习—自己实现toString 下面我直接写代码吧,就不罗嗦了,
public static String myToString(int[] arr){
String ret = "[";
for (int i = 0; i < arr.length; i++) {
ret = ret+arr[i];
if(i != arr.length-1){
ret = ret+",";
}else {
ret = ret+"]";
}
}
return ret;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
String ret = myToString(arr);
System.out.println(ret);
}
大家看一下代码,并尝试着写一下,不难的。一维数组到此结束 撒花
二维数组
创建方法
还是三种和一维一样的,我再写一遍嗷!!!!
其实二维数组 和一维数组差不多,我写一下使用情况吧,其他的似乎大家都能了解
public static void main(String[] args) {
//第一种直接创建并初始化,称为静态初始化
int[][] arr1 = {{1,2,3},{4,5,6},{7,8,9}};
//第二种 使用关键字new 在堆区创建一个 数组。
int[][] arr2 = new int[3][4];
//第三种 不介绍咯
int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
}
记住重要的一点,。int[][] 是一个类型 中括号内不允许写东西。
二维数组的使用
第一种:比较难理解哦,新官上任三把火,先来个牛逼点的二维数组
public static void main(String[] args) {
int[][] array = new int[3][];
array[0] = new int[4];
array[1] = new int[5];
array[2] = new int[4];
for (int[] arr:array ) {
for (int x : arr) {
System.out.print(x+" ");
}
System.out.println();
}
}
大家猜猜打印结果是啥!!!!!!
三行的二维数组,第一行四个元素 第二行五个元素 第三行四个元素,当人new自动初始化为0;
再者就是for循环的用法了。棒棒哒,
第二种:
public static void main(String[] args) {
int[][] array = {{1,2,3},{4,5,6},{7}};
for(int i = 0; i < array.length;i++){
for(int j = 0; j < array[i].length; j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
其实主要就是这些 还有一点,也就是,java中 array[1][2] 中的2不能省略,而C语言可以,因为C语言的二维数组是个矩形。而java则是不规范的。
好了今天的分享就到这里了
、
、
总结
小编最近刚比完蓝桥杯,效果不是很好,但已经知道了题型,来年再战。希望大家和我一起加油哦!
小编qq:2206730228
大家可以跟我一起学习