JAVA-数组学习

数组的引例

现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有50名员工,假如我没有数组的话,程序首先需要声明50个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦,而且错误率也会很高。因此我们可以使用容器进行操作。将所有的数据全部存储到一个容器中,统一操作。

容器概念:
容器:是将多个数据存储到一起,每个数据称为该容器的元素。
生活中的容器:水杯,衣柜,教室

数组的相关概念

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

数组的初始化

数组的两种常见初始化方式:
动态初始化(指定长度)
静态初始化(指定内容)

数组的定义详解

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[] : 表示数组。

数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

new:关键字,创建数组使用的关键字。

数组存储的数据类型: 创建的数组容器可以存储什么数据类型。

[长度]:数组的长度,表示数组容器中可以存储多少个元素。

注意:数组有定长特性,长度一旦指定,不可更改。

方式一:动态初始化

int[] arr = new int[3];  
int   arr[] = new int[3];
// 可以拆分 
int[] arr;
arr = new int[3];

方式二: 静态初始化

int[] arr = new int[]{1,2,3,4,5}; 
// 可以拆分 
int[] arr;
arr = new int[]{1,2,3,4,5};

方式三:静态初始化省略格式(不能拆分)

int[] arr = {1,2,3,4,5};

一维数组的相关应用

一维数组的遍历

 public static void printarray(int[] array){
        for (int i = 0; i <array.length ; i++) {
            System.out.print(array[i]+" ");
        }
    }

计算一维数组的元素和

  public static int sum(int[] array){
        int sum = 0;
        for (int i = 0; i <array.length ; i++) {
            sum = sum+array[i];
        }
        return sum;
    }

输出一维数组中的最大数

public static int ArrayMax(int[] array){
        int result = 0;
        result=array[0];
        for (int i = 1; i < array.length; i++) {
            if (array[i]>result){
                result=array[i];
            }
        }
        return result;
    }

一维数组的反转

    //反转数组  实现返回一个数组参数
    public static int[] reverse(int[] array){
        int[] result = new int[array.length];
        for (int i = 0,j= array.length-1; i < array.length; i++,j--) {
            result[j]=array[i];
        }
        return result;
    }

二维数组

二维数组的示例

public class Demo02 {
    public static void main(String[] args) {
        int[][] array = {{1,2},{2,3},{3,4},{4,5}};
        System.out.println(array[2][0]); //3
        System.out.println(array[2][1]); //4
    }
}

二维数组的遍历输出

 public static void main(String[] args) {
        int[][] array = {{1,2},{2,3},{3,4},{4,5}};
        for (int i = 0; i <array.length ; i++) {
            for (int j = 0; j <array[i].length ; j++) {
                System.out.print (array[i][j]+" ");
            }
            System.out.println();
        }
    }
  /*
            1 2 
            2 3 
            3 4 
            4 5 
         */

打印数组的方法(Arrays类)

  public static void main(String[] args) {
        int[] a = {1,2,3,4,55,6,77,231};
        System.out.println(a+" ");
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(a+" ");
        System.out.println(Arrays.toString(a));
    }

Arrays用到的方法

Arrays.sort(a);        //对数组进行排序(升序)
Arrays.toString(s);    //打印数组元素

错误纠正

Arrays.sort(a);
 System.out.println(a+" ");
//该返回无法显示数组元素--->[I@1b6d3586 
//正确应该调用
Arrays.toString(a);

补充-JAVA的数组内存

![]( https://img-blog.csdnimg.cn/20190719210213400.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pc2hpd29kZWJvY2FpMjE=,size_16,color_FFFFFF,t_70)

参考博文链接

https://blog.csdn.net/nishiwodebocai21/article/details/96484891?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162764774116780261970785%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162764774116780261970785&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2

posted @ 2021-07-30 22:41  宇丹陈  阅读(60)  评论(0)    收藏  举报