一、数组的概念
数组是一种数据结构,用来存储同一类型值的集合。通过一个整形下标可以访问数组中的每一个值。
二、数组的使用
1.数组的定义和初始化
(1) 静态初始化(只能初始化,不能赋值)
int[] a={1,2,3,4};
(2) 动态初始化(既可以初始化,又可以赋值)
- 已知元素时
例:
int []a=new int[]{1,2,3,4};
long []a=new long[]{1,2,3,4};
String[] a=new String[] {"Hello","World"};//初始化
a=new String[] {"Go","Come","Yes","No"};//赋值
return new int[] {1,2,3,4};//数组类型用作方法的返回值
- 不知道元素是什么,但是必须总长度已知
int[] a=new int[5];//定义了一个int数组,长度是5 (长度必须有)
2.数组的拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将指向同一个数组。
例如:
int[] array1 = {2,3,5,7,9};
int[] array2 = array1;
array2[2] =6; // 此时,array1[2]也等于6
如果要将一个数组的所有制拷贝到一个新数组去,需要使用Arrays类的copyOf方法:
int[] array1 = {2,3,5,7,9};
int[] array2 = Arrays.copyOf(array1,array1.length); // 第二个参数是新数组的长度
int[] array2 = Arrays.copyOf(array1,2*array1.length); // 多余的元素将被设置为默认值
3.变量的默认值规则
没有明确元素值的情况下,元素的默认值是什么?
1.局部变量不享受默认值规则
2.
类型 | 默认值 |
---|---|
byte/short/int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 |
boolean | false |
char | 0x0000对应的字符 |
引用类型 | nulll |
4.数组的使用
- 使用arr.length能够获取到数组的长度
- 使用 [ ] 按下标取数组元素
- 使用 [ ] 操作符既能读取数据,也能修改数据
- 下标访问操作不能超出有效范围 [0,length-1]
A.遍历数组
(1).通过下标遍历
//范围遍历
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr1[i]);
System.out.printf("第 %d 个元素是 %d \n", i + 1, arr1[i]);
}
(2).for-each遍历数组
//全部遍历,代码较少
String[] arr2 = {"Hello", "World", "yes", "No"};
for (String x : arr2) {//用String类型去接收数组s的元素
System.out.println(x);
}
B.数组作为方法的参数
例:打印数组内容
public static void main(String[] args) {
//打印数组内容
int[] arr={1,2,3,4,5,6};
printArray(arr);
}
//方法:打印数组
public static void printArray(int[] arr) {
for(int x:arr){
System.out.println(x);
}
}
后续进行完善!