【java学习之路】(java SE篇)003.java SE基础语法之数组

  • Post author:
  • Post category:java




数组



1.数组初识

表示存储相同数据类型数据的有序集合


特点

  1. 数组中存放的数据必须是同一个数据类型,可以使基本数据类型也可以是引用数据类型
  2. 数组在定义的时候必须给定大小,而且大小不可以改变
  3. 可以通过下标值来获取数据,一般下标从“0”开始


使用

  1. 声明数组

  2. 创建空间

  3. 赋值

  4. 数组操作

    public class ArrayDemo{
        public static void main(String[] args){
            //声明数组
            int[] array;
            //创建内存空间
            array = new int[5];
            //数组赋值
            array[0] = 0;
            array[1] = 1;
            array[2] = 2;
            array[3] = 3;
            array[4] = 4;
            //数组操作
            for(int i=0;i<5;i++) {
                System.out.println(array[i]);
            }
        }
    }
    



2.一维数组的几种创建方式

  1. 声明并申请空间

    int[] arr = new int[5];
    
  2. 声明数组并赋值

    int[] arr = new int[]{1,2,3,4,5};
    
  3. 直接初始化

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

获取数组长度

System.out.println(arr.length);


随堂练习:计算5位学生的平均分

public class Demo {
    public static  void main(String[] args){
        int sum = 0;
        Scanner sc = new Scanner(System.in);
        int[] array = new int[5];
        for(int i=0;i<5;i++){
            array[i] = sc.nextInt();
        }
        for(int j = 0;j<array.length;j++){
            sum += array[j];
        }
        System.out.println(sum/5);
    }
}



3.数组经常用来考排序算法


面试需求

  1. 会写某种排序算法

  2. 排序算法的时间(空间)复杂度

  3. 排序算法的稳定性

    public class Arraysort{
        public static void main(String[] args){
            //定义数组
            int[] array = new int[]{4,1,7,2,9,3,5,8,6};
            //将数组进行排序操作,从小到大
            //冒泡排序
            for(int i=0;i< array.length;i++){
                for(int j=0;j<array.length-1-i;j++){
                    if(array[j]>array[j+1]){
                        int tmp = array[j];
                        array[j] = array[j+1];
                        array[j+1] = tmp;
                    }
                }
            }
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+"\t");
            }
            
            
            
            //选择排序
            for(int i=0;i< array.length;i++){
                for(int j = i+1;j< array.length;j++){
                    if(array[i]>array[j]){
                        int tmp = array[i];
                        array[i] = array[j];
                        array[j] = tmp;
                    }
                }
            }
            for(int i=0;i<array.length;i++){
                System.out.print(array[i]+"\t");
            }
        }
    }
    



4.二维数组(常用于矩阵运算)

public class Demo {
    public static  void main(String[] args){
        int[][] arr = new int[3][];
        //创建二维数组的对象
        arr[0] = new int[5];
        arr[1] = new int[3];
        arr[2] = new int[4];
        //赋值
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[0][2] = 3;
        arr[0][3] = 4;
        arr[0][4] = 5;

        arr[1][0] = 6;
        arr[1][1] = 7;
        arr[1][2] = 8;

        arr[2][0] = 9;
        arr[2][1] = 10;
        arr[2][2] = 11;
        arr[2][3] = 12;

        for(int i=0;i< arr.length;i++){
            for(int j=0;j<arr[i].length;j++){
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }
    }
}



5.java.util.Arrays

提供了关于数组操作的API

  1. 打印数组——toString方法

  2. 比较两个数组是否相同——equals方法

  3. 数组排序——sort方法

    public class Demo {
        public static  void main(String[] args){
            int[] array = new int[]{4,1,7,2,9,3,5,8,6};
            Arrays.sort(array);
            for(int i=0;i< array.length;i++){
                System.out.print(array[i]);
            }
        }
    }
    
  4. 数组查找——binarySearch方法



版权声明:本文为qq_24254611原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。