第六章、数组

数组

1. 数组

1.1 基本概述

数组分为:
    一维数组、二维数组、多维数组
 
数组是相同数据类型的多个元素的容器。
这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”)。
 
一维数组本质就是一块连续的内存空间,可以在不同的存储单元记录不同的数据内容。
 
 
数组名称:类似于变量的名称,用于记录连续内存空间中的首地址
数组元素:主要指存放在数组内存空间中的数据内容。
数组长度:主要指数组中元素的个数,通常使用  数组名.length的方式来获取
数组下标:主要指数组元素的编号,从0开始一直到数组的长度-1.

1.2 数组的声明方式

语法格式
    数据类型[] 数组名称 = new 数据类型[数组长度];
 
    例如:
        int[] arr = new int[5];-表示声明一个长度为5个元素的类型为int的一维数组。
 
        int num = 5;  -表示声明一个初始值为5的int类型的变量num。
 
        int arr[] = new int[5]; - 不推荐使用这种方式去做
 
 
注意事项
    1.当数组下标越界时候会在运行阶段产生:java.lang.ArrayIndexOutOfBoundsException: 5    数组下标越界
    2.只有在声明数组时[]中的数字代表数组的长度,否则一律代表数组元素的下标;
 
 
数组的初始化
    数据类型[] 数组名称 = {初始值1,初始值2,初始值3,....}
 
        例如:
            int[] arr = {10,20,30,40,50};
            int[] arr1 = new int[]{10,20,30,40,50};
 
 
            int[] arr;
            arr = {1,5,8,10};
 
 
数组的复制
    int[] arr = {1,3,5,7,9};
    int[] arr1 = new int[10];
 
    //System.arrayCopy(原数组,原数组要复制的起始位置,目标数组,起始位置,复制长度);

1.3 数组的练习

实现用户输出正整数中重复数字出现的次数并打印。
    例如:
            123456712345671

1.4 冒泡排序

原理:比较两个相邻的元素,将值大的元素交换至右端。
 
    int[] arr = {5,8,2,10,9};       //2 5 8 9 10
 
    第一趟排序:
 
            第一次排序:5和8比较,5不大于8,不交换       5,8,2,10,9
            第二次排序:8和2比较 ,8大于2,交换位置      5 2 8 10 9
            第三次排序  8和10比较,8不大于10 ,不交换位置 5 2 8 10 9
            第四次排序  10和9比较,10大于9,交换位置        5 2 8 9 10
 
    第二趟
        第一次排序:
            5和2比较,5大于2,交换位置  2 5 8 9 10
        第二趟总共进行了1次比较,  排序结果   2 5 8 9 10
 
 
冒泡排序优点:
    每进行一躺排序,就会少比较一次因为每进行一躺排序都会找出一个较大的值。一定程序减少算法量

2. 二维数组

2.1 基本概念

一维数组本质上就是一段连续的内存空间,用于存放多个类型相同的数据。
二维数组本质就是由一维数组组成的数组,也就是说每个元素都是一个一位数组。

2.2 声明方式

语法格式
    数据类型[][] 变量名 = new 数据类型[m][n];
 
    m:表示这个二维数组由多个个一位数组
    n:表示每一个一维数组的元素个数
 
    比如:
        int[][] arr = new int[2][3]; - 表示声明一个具有2行3列的二维数组
 
 
    思考:
        arr代表什么?  arr[0]代表什么?  arr[0][0]代表什么?
 
        arr代表数组的名称,也就是用于记录该数组内存空间的首地址
        arr[0] 代表二维数组中的第一行,也就是一个一维数组
        arr[0][0] 代表二维数组中下标为0行0列的元素,也就是第一个一个维数组中的第一个元素。
 
 
        arr.length 代表二维数组的大小,也就是二维数组的行数。
        arr[0].length代表就是二维数组中第一行的大小,也就是一维数组的大小,也就是列数
 
 
 
二维数组的初始化
    数据类型[][] 数组名称 = {{初始值},{初始值2},{初始值3}};
 
 
    例如:
        int[][] arr = {{1,3,5,7},{2,4,6},{8,9,10,11,15}};
原文地址:https://www.cnblogs.com/borntodie/p/14092732.html