创建数组
- 基本语法
// 静态初始化数据类型 [ ] 数组名称 = { 初始化数据 };// 动态初始化数据类型 [ ] 数组名称 = new 数据类型 [ ] { 初始化数据 };//数据类型 [ ] 数组名称 = new 数据类型 [ ] ;
- 代码示例
int [ ] arr = new int [ ]{ 1 , 2 , 3 }; //这种int[ ]里面不能写数据int [ ] arr = { 1 , 2 , 3 };int[ ] arr = new int[ 3] ---->//这种初始化里面3个0
Arrays.toString(array)将参数的数组,以字符串形式输出
foreach
- 定义:foreach又叫做增强for循环,相当于for循环的简化版,因此在一些较复杂的循环中不适用。
- 结构:foreach(元素类型 元素名称:循环对象(数组、集合)){
循环语句
}
特点:foreach在循环次数未知或者计算起来较复杂的情况下效率比for循环高。
实例1:
import java.util.Arrays;
public class TestDemo {
public static void func1(int[] array){
array = new int[]{11,2,13,4,51,61};
}
public static void func2(int[] array){
array[0] = 899;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6};
System.out.println(Arrays.toString(array));
func1(array);
// func2(array);
System.out.println(Arrays.toString(array));
}
}
// 结果 func1 -->[1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5, 6]
// 结果 func2 -->[1, 2, 3, 4, 5, 6]
// [899, 2, 3, 4, 5, 6]
PS:
- 传过去的是地址,形参只是改变了自己的指向而已
- 方法创建的引用,只是拷贝main方法的地址,但对于func1来说,这是一个可以改变的值,所以最后打印的还是main里面的array(这条自己总结的,非官方)。
实例2:打印数组里面的每一位
import java.util.Arrays;
public class TestDemo {
public static String myToString(int[] array){
if(array == null) return "null";
String str = "[";
for (int i = 0; i < array.length; i++){
str = str+array[i];
if(i != array.length-1){
str = str+",";
}
}
str = str + "]";
return str;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6};
System.out.println(Arrays.toString(array));
}
}
// 结果 [1, 2, 3, 4, 5, 6]
二维数组
数据类型
[][]
数组名称
=
new
数据类型
[
行数
][
列数
] {
初始化数据
};
int
[][]
arr
=
{ {
1
,
2
,
3
,
4
}, {
5
,
6
,
7
,
8
}, };
int
[][]
arr
= new int []
{ {
1
,
2
,
3
,
4
}, {
5
,
6
,
7
,
8
}, };
int
[][]
arr
= new int []
二维不规则数组