数组
2020-08-07 本文已影响0人
RicherYY
1. 数组概念
数组就是一种数据结构,用来存储同一数据类型的集合,通过整形的下标来访问数组中的元素。
2. 数组定义
利用“数据类型+[]+变量”的方式用来声明数组,并没有进行初始化
int[] a;
3. 数组初始化
数组的初始化有三种方式
- 用new运算符直接输入数组长度
int[] a = new int[100];
- 直接在数组中添加元素
int[] a = {1,2,3};
- 用new运算符同事添加元素
int[] a = new int[]{1,2,3}
通过for循环来给数组赋值
int[] a = new int[100];
for(i = 0; i < 100; i++){
a[i] = i;
}
数组注意点
- 数组下标默认开始指为0
- 创建数组的各种类型的初始值
- 整形-->0
- boolean-->false
- Object-->null
- 数组长度可以利用 变量名.length 来取得,例如:
for (int = 0; i < a.length; i++ ){
System.out.println(i);
}
- 一旦创建数组是不能改变长度
- 可以通过输入下标来访问数组中存储的元素
int[] a = {1,2,3};
System.out.println(a[0]);// 1
4. for each
增强for循环 foreach循环,可以用来依次处理数组中每个元素不必在乎指定的下标。
表现形式为:
for(variable : collection) statement
定义一个变量用于暂存集合中的每一个元素,并执行相应的语句。
collection
必须是一个数组或者是实现了Iterable
接口的类对象
for (数据类型 element:要循环的集合) {
System.out.println(element);
}
public static void main (String[] args){
int[] array ={1,2,3};
for (int a : array){
System.out.println(a);
}
}
传统for循环也可以实现这一个效果
for (int i = 0; i < a.length;i++){
System.out.println(a[i]);
}
显然foreach更加不容易出错,不必为下标而操心。
5. 数组拷贝
Java允许将一个数组拷贝给另一个数组变量,这时两个数组将会引用同一个数组。
int[] a = new int[]{2,3,5,7,11,12};
int[] b = a;
System.out.println(b[5]);// 12
可以使用Arrays
里面的copyOf
方法来拷贝数组
int[] a = new int[]{2,3,5,7,11,12};
int[] b = Arrays.copyOf(a,a.length);
System.out.println(b[5]);//12
copyOf
方法第一个参数是要拷贝的数组,第二个参数是数组长度,一般都是==数组扩容==的时候用。
int[] b = Arrays.copyOf(a,2 * a.length);
数组排序
//todo有时间再来填坑