一、数组的概念
同一种类型数据的集合。其实数组就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么.不是如何运算而是如何保存这些数据以便于后期的运算,那么数组就是一种用于存储数据的方式,能存数据的地方我们称之为容器,容器里装的东西就是数组的元素, 数组可以装任意类型的数据,虽然可以装任意类型的数据,但是定义好的数组只能装一种元素, 也就是数组一旦定义,那么里边存储的数据类型也就确定了。
存数据和不存数据有什么区别吗?数组的最大好处就是能都给存储进来的元素自动进行编号. 注意编号是从0开始。方便操作这些数据。
二、声明数组
- 一组相同类型(可以是类)数据的集合;
2) 一个数组是一个对象;
3) 声明一个数组没有创建一个对象;
4) 数组能以下列形式声明:
int[] i 或 int i[]
三、创建数组
动态初始化: int[] i = new int[2];
静态初始化: int[] i = {0,1};
数字类型为0,布尔类型为false,引用类型为null
四、 初始化数组
- 初始化、创建、和声明分开
int[] i;
i = new int[2];
i[0] = 0;
i[1] = 1;
2.初始化、创建、和声明在同一时间
int[] i = {0,1};
Car[] c = {new Car(),new Car()};
五、 多维数组
- 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每个元素就是一个一维数组
- 有效
ini
复制代码
int[][] i1 = new int[2][3];
int[][] i2 = new int[2][];
i2[0] = new int[2],i2[1] = new int[3];
2. 无效
ini
复制代码
int[][] i1 = new int[][3];
3.数组长度length
int[] i = new int[5];
int len = i.length;//len = 5;
Student[][] st = new Student[4][6];
len = st.length;//len = 4;
len = st[0].length;//len = 6;
六、冒泡排序
-
冒泡排序无疑是最为出名的排序算法之一,总共有八大排序
-
冒泡排序的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较
public static void main(String[] args) { int[] a = {1,44,35,235,325,23,54,23,2}; int[] sort = sort(a);// 调用我们自己写的 System.out.println(Arrays.toString(sort));
}
// 冒泡排序 // 1.比较数组中两个相邻的元素,如果第一个数比第二个数大,我们就交换它们的位置 // 2.每一次比较,都会产生一个最大,或者最小的数字 // 3.下一轮则可以少一次排序 // 4.依次循环,直至结束 public static int[] sort(int[] array){ // 临时变量 int temp = 0;
// 外层循环,判断我们这个程序要走多少次 for (int i = 0; i < array.length - 1; i++) { boolean flag = false; // 通过flag标识位减少没有意义的比较 // 内层循环,比较判断两个数,如果第一个数比第二个数大,则交换位置 for (int j = 0; j < array.length-1-i; j++) {// -i 是应为每一轮循环完了都会有个最大数个最小数 都是放在数组的最后一位 ,这里-i是为了减少一次没有必要的循环 if (array[j+1]<array[j]){ temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; flag = true; } } if (flag == false){ break; } } return array;}
七、Arrays类
数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays类供我们使用,从而可以对数据对象进行一些基本的操作。
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用使用对象来调用(注意:是不用而不是不能)
具有以下常用功能:
①给数组赋值:通过fill方法
②对数组排序:通过sort方法,按升序
③比较数组:通过equals方法比较数组中元素值是否相等
④查找数组元素:通过binarySrarch方法能对排序好的数组进行二分查找法操作
八、数组默认值
对于数组来说,即使不赋值,也会有默认值.
数组的默认值:
- byte 数组的默认值是0
- short 数组的默认值是0
- int 数组的默认值是0
- long 数组的默认值是0
- float 数组的默认值是0.0