概念:一组连续的存储空间,存储多个相同数据类型的值。
元素:数组里面的数据称呼为元素
数组初始化的时候如果定义了数组的长度,那么里面就已经有了默认值,不同类型的数组默认值不同。
2、数组的一些属性- 只能存储相同类型的数据。
- 长度固定
- 拥有索引(下标),从0开始,最大值为长度-1
数组的创建方式有两种:
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 型没有测试…)
foreach 与 for循环效果差不多,同样是遍历:
注意:foreach循环可以遍历输出数组里面的元素,但是不能通过foreach来修改元素。循环值会在循环的每一次获取数组中的元素!!
在方法中,如果有两个值要接收,需要两个形参,如果三个值就有三个形参,如果有一百个值呢?所以这里有个批量接收值的方式:
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("可变参数"); }
所以,可变参数必须是放在形参中的最后一个!
上述代码中,运行并不会报错,这属于方法的重载,而不是重复。
可变参数只能有一个,有多个不同类型的可变参数会报错!:
上图代码中,可以发现是方法的重载,且形参两个都是 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。
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(); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)