JAVA-数组基础

69 阅读4分钟

一、数组的概念

同一种类型数据的集合。其实数组就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么.不是如何运算而是如何保存这些数据以便于后期的运算,那么数组就是一种用于存储数据的方式,能存数据的地方我们称之为容器,容器里装的东西就是数组的元素, 数组可以装任意类型的数据,虽然可以装任意类型的数据,但是定义好的数组只能装一种元素, 也就是数组一旦定义,那么里边存储的数据类型也就确定了。
存数据和不存数据有什么区别吗?数组的最大好处就是能都给存储进来的元素自动进行编号. 注意编号是从0开始。方便操作这些数据。

二、声明数组

  1. 一组相同类型(可以是类)数据的集合;

   2) 一个数组是一个对象;

   3) 声明一个数组没有创建一个对象;

   4) 数组能以下列形式声明:

      int[] i 或 int i[]

三、创建数组

动态初始化:    int[] i = new int[2];

静态初始化: int[] i = {0,1};

数字类型为0,布尔类型为false,引用类型为null

四、 初始化数组

  1. 初始化、创建、和声明分开      
int[] i;
i = new int[2];
i[0] = 0;
i[1] = 1;

2.初始化、创建、和声明在同一时间

      int[] i = {0,1};
      Car[] c = {new Car(),new Car()};

五、 多维数组

  • 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每个元素就是一个一维数组
  1. 有效
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