Java数组详解(一)一维数组

  1. 什么是数组

数组就是一组数据的集合,数组中的每个数据被称为元素,数组中可以存放任意类型的数据,但同一个数组存放的元素类型必须一致。

  1. 数组的定义
int[] x = new int[10];//x是声明的变量,类型为int[],10代表数组的长度,此数组长度为10

内存图:在这里插入图片描述 数组中的每一个元素都有一个索引(也称角标),想要访问数组中的元素可以通过x[0],x[1],x[2]这样的方式来访问,注意数组中的最小索引是0,最大索引是"数组的长度-1"。数组中有一个获取数组度的属性length属性,可以通过"数组名.length"的方法来获取数组的长度,也就是元素的个数。

public class Example04 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println(sum);
        int[] x = new int[3];
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
   }
}

结果为:在这里插入图片描述
从结果可以看出数组中的每个元素都是0,为什么会出现这种情况呢,这是因为数组创建成功后,系统会自动为数组中的元素赋予一个默认值,系统根据元素类型的不同,默认值不同。如下图:在这里插入图片描述
如果我们不想使用默认值,可以为元素赋值

public class Example05 {
    
    
    public static void main(String[] args) {
    
    
        int[] x = new int[3];
        x[0] = 10;//为第一个元素赋值
        x[1] = 20;//为第二个元素赋值
        x[2] = 30;//为第三个元素赋值
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
    }
  }

结果:在这里插入图片描述

在定义数组时我们只指定了数组的长度,由系统自动为元素赋值的方式称为动态初始化。还有一种初始化数组时的方式叫做静态初始化,就是在定义数组的同时就是为数组每个元素赋值。

public class Example06 {
    
    
    public static void main(String[] args) {
    
    
        int sum = Example04.getSum(5);
        System.out.println(sum);
        //类型[] 数组名 = {元素,元素,元素,....}
        int[] x = {
    
    1,2,4};//静态初始化
        System.out.println(x[0]);
        System.out.println(x[1]);
        System.out.println(x[2]);
        System.out.println("数组的长度为:" + x.length);
   }
}
  1. 数组的常见操作
    3.1,数组的遍历:在操作数组的时候,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历。
public class Example07 {
    
    
    public static void main(String[] args) {
    
    
       int[] arr = {
    
    1,2,3,4,5,6};
       for (int i = 0;i < arr.length;i++){
    
    
           //通过索引访问元素
           System.out.println(arr[i]);
       }
    }
}

3.2,数组的最值:

public class Example08 {
    
    
    public static void main(String[] args) {
    
    
       int[] arr = {
    
    10,25,100,21,20};
       int max = arr[0];//默认数组第一个元素为最大值
       for (int i = 0;i < arr.length;i++){
    
    
           if (arr[i] > max){
    
    //比较arr[i]的值是否大于max
               max = arr[i];//条件成立将该元素重新赋值给max
           }
       }
        System.out.println("该数组的最大值为:" + max);
    }
}

3.3,数组的排序

冒泡排序:

public class Example09 {
    
    
    public static void main(String[] args) {
    
    
        System.out.print("排序前:");
        printArray(arr);
        bubbleSort(arr);
        System.out.print("排序后:");
        printArray(arr);
    }
    //排序方法
    public static void bubbleSort(int[] arr){
    
    
        //外层循环控制进行多少轮比较
        for (int i = 0;i < arr.length - 1;i++){
    
    
            //内层循环用于控制每轮的比较次数
            for (int j = 0;j < arr.length - i - 1;j++){
    
    
                if ( arr[j] > arr[j + 1]){
    
    //比较相邻元素
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            System.out.print("第"+(i + 1)+"轮排序后:");
            printArray(arr);
        }
    }
    //打印方法
    public static void printArray(int[] arr){
    
    
        for (int i = 0; i < arr.length; i++){
    
    
            System.out.print(arr[i] + " ");
        }
        System.out.print("\n");
    }
}

加油吧!

猜你喜欢

转载自blog.csdn.net/qq_42494654/article/details/109060873