第六章 一维数组
6.1 一维数组的定义
- 数组的定义:数组是用来存储数据的集合,但是,通常我们会发现把数组看做一个存储具有相同类型的变量集合会更有用。一个数组变量看起来似乎是存储了一个数组,但实际上它存储的是指向数组的引用。当创建数组后,它的元素被赋予默认值,数值型基本数据类型的默认值为0。
- 数组初始化语法中不使用操作符new。使用数组出初始化语法时候,必须将声明、创建和初始化数组都放在一条语句中,将他们分开会发生错误。
- 数组的内存分析:
- 访问元素:处理数组的时候经常会用到for循环:
- 示例:查找数组中最大、最小值和平均值
- foreach循环:Java支持一个简便的for循环、称为foreach循环、即不使用下标变量就可以顺序地遍历整个数组。通常foreach循环的语法为:
- - 示例:分析数字
6.2数组的复制
- 自定义复制
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a[]= {1,2,3,4,5,6};
extendArray(a,a.length*2);
}
private static void extendArray(int[] oldArray, int newLength) {
// TODO 自动生成的方法存根
int[] newArray=new int[newLength];
for(int i=0;i<Math.min(oldArray.length, newArray.length);i++) {
newArray[i]=oldArray[i];
}
System.out.println(Arrays.toString(newArray));
}
}
- Arrays.copyOf( )
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a[]= {1,2,3,4,5,6};
int b[]=Arrays.copyOf(a, 12);
System.out.println(Arrays.toString(b));
}
}
6.3 可变长参数与数组
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
// TODO 自动生成的方法存根
bianchangcanshu(1, 2, 3, 4, 5, 6);
}
private static void bianchangcanshu(int... number) {
// TODO 自动生成的方法存根
if (number.length == 0) {
System.out.println("没有元素");
return;
}
System.out.println(Arrays.toString(number));
}
}
6.3数组的查找与排序
- 冒泡排序:
- 选择排序:
- 插入排序:
- 二分查找:
6.4 Arrays工具类