Java基础(五)——数组、foreach循环的使用、方法中的可变参数与数组的关系、二维数组

Java基础(五)——数组、foreach循环的使用、方法中的可变参数与数组的关系、二维数组,第1张

Java基础(五)——数组、foreach循环的使用、方法中的可变参数与数组的关系、二维数组 Java基础(五)——数组、foreach循环的使用、方法中的可变参数与数组的关系 一、数组的定义 1、概念

概念:一组连续的存储空间,存储多个相同数据类型的值。

元素:数组里面的数据称呼为元素

数组初始化的时候如果定义了数组的长度,那么里面就已经有了默认值,不同类型的数组默认值不同。

2、数组的一些属性
  1. 只能存储相同类型的数据。
  2. 长度固定
  3. 拥有索引(下标),从0开始,最大值为长度-1
3、数组的创建


数组的创建方式有两种:

a、动态初始化——先定义长度,再赋值
String[] names = new String[4];
// 开始赋值...
b、静态初始化——定义长度的同时直接赋值

其中、这里可以分拆开写和不拆开写:

// 拆开写
String[] names = new String[]{"a","b","c","d"};

// 不拆开写
String[] names;
names = new String[]{"a","b","c","d"};
4、数组元素的存储与获取

数组的存储可以通过索引来存储:

String[] names = new String[4];		//创建数组
// 存储数据
names[0] = "张三";
names[1] = "李四";
names[2] = "王五";
names[3] = "赵六";

通过索引获取数据:

System.out.println(names[0]+","+names[1]+","+names[2]+","+names[3]);

还可以通过 for 循环来遍历数组:

for (int i = 0; i < names.length; i++) {		// 数组名.length  意思是获取该数组的长度
            System.out.println(names[i]);
        }

通过 length来获取数组长度,可以动态控制获取数组长度。

5、修改数组元素

通过索引来给元素赋值:

names[0] = "陈一";
6、删除数组中的元素

因为这个是 String 类型的数组,所以其默认值是 null ,所以如果删除某个值,直接给其赋值为 null 即可。

names[3] = null;		//删除索引为 3 的元素
7、其他类型的数组

上述例子都是使用 String 类型的数组,其他类型的数组看下图:

int[] int_array = new int[1];
boolean[] bool_array = new boolean[1];
float[] float_array = new float[1];
double[] double_array = new double[1];
char[] char_array = new char[1];
long[] long_array = new long[1];

这些数组创建之后的默认值,看下图:

(还有 byte 型和 short 型没有测试…)

8、foreach的使用

foreach 与 for循环效果差不多,同样是遍历:

注意:foreach循环可以遍历输出数组里面的元素,但是不能通过foreach来修改元素。循环值会在循环的每一次获取数组中的元素!!

二、可变参数与数组 1、可变参数的定义

在方法中,如果有两个值要接收,需要两个形参,如果三个值就有三个形参,如果有一百个值呢?所以这里有个批量接收值的方式:

public static void add(int ... num){	
        System.out.println("可变参数");
    }

看上方代码,可以看到,如果有很多值接收,就用 … 代替了,这就是可变参数。可变参数前面定义了 int 类型,意思是只能接收 int 类型的数据。

2、可变参数的本质

上方代码中,可以看到三个点的后面有个 num,这其实是数组名。可变参数的本质就是数组,通过数组来批量接收数据。

3、可变参数的使用和注意事项

可变参数必须是形参中的最后一个,如果可变参数后面还有其他变量,则会报错!比如:

public static void add(int ... num, int count){
        System.out.println("可变参数");
    }

所以,可变参数必须是放在形参中的最后一个!


上述代码中,运行并不会报错,这属于方法的重载,而不是重复。

可变参数只能有一个,有多个不同类型的可变参数会报错!:

4、可变参数的调用


上图代码中,可以发现是方法的重载,且形参两个都是 int 类型,那么调用的时候,不能随意的调用,比如:

add(1,2,3,4)

上面的代码,这样调用肯定是错的,因为方法不知道哪一部分是变量,哪一部分是可变参数(数组)所以,必须区分变量来调用:是可变参数部分的,就需要定义成数组:

两种调用方法:

//调用第一个方法
int[] nums01 = new int[]{2,3,4};
add(1,nums01);

//调用第二个方法
// add(new int[]{1,2,3,4});
// 或者
int[] nums02 = new int[]{1,2,3,4};
add(nums02);
三、二维数组 1、概念

概念:一维数组中的一维数组;数组中的元素,还是数组。

2、二维数组的赋值


上图中,3代表二维数组中的长度,5代表二维数组里的一维数组的长度。且,二位数组中,二维数组名.length ,这里的 length 仅代表二维数组的长度,也就是 3。

3、foreach 遍历二维数组
for (int[] array:newArray) {		//因为是二维数组,所以这里一开始要 int []
	for (int num:array) {
		System.out.print(num);
	}
	System.out.println();
}

for 循环遍历二维数组,需要两层for循环:

for (int i = 0; i < newArray.length; i++) {
		//j为一维数组的索引
		for (int j = 0; j < newArray[i].length; j++) {
			System.out.print(newArray[i][j]);
		}
		System.out.println();
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4970026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存