数组

数组的内存结构:数组在内存中是一块连续的空间,用于存储相同类型的数据

数组基本要素:

  1. 数组名:用于标识数组的标识符

  2. 数组元素:数组元素是存储在数组中的数据

  3. 数组类型:数组类型是数组中元素共同的类型

  4. 数组下标:数组下标是数组中的元素的标识符,一般从0开始

数组的内涵:

  1. 数组是有序的元素序列

  2. 数组长度是固定的

  3. 数组是一种数据结构

数组的外延:

  1. 按维度

    • 一维数组

    • 二维数组

    • 三维数组

  2. 按类型

    • 基本数据类型数组

      • byte、short、int、long、float、double、char、boolean

    • 引用数据类型数组

数组的优缺点:

  • 优点:

    • 按照下标(索引)查询元素速度快

    • 能存储大量数据

    • 按照下标(索引)遍历数组方便

  • 缺点:

    • 数组的大小一经确定不能改变

    • 一个数组只能存储一种类型

    • 增加、删除元素效率慢

一维数组的内涵与外延:

  • 内涵:

    • 一维数组可以表示一行或一列数据

    • 数组中元素都有一个下标

  • 外延:

    • 整型一维数组

    • 浮点型一维数组

    • 字符串一维数组

    • 。。。。。。

一维数组的声明:

    语法:    数据类型 [ ]  数组名称; 

                   或         (声明数组时不能规定数组长度)

                  数据类型   数组名称[ ];

一维数组的分配空间:

数据类型 [ ]  数组名   =   new   数据类型 [大小]

 

什么是foreach: foreach循环是用于遍历数组和集合的,增强版的for循环结构。

为什么使用foreach:(优点)

  1. 遍历更加简洁

  2. 完全隐藏下标

  3. 完全隐藏迭代器

语法结构:

for( 数据类型  变量名 :数组名称) {     

    //直接使用变量 

}

 

冒泡排序:

    冒泡排序是对相邻的元素进行两两比较,顺序相反则进行交换,不断重复直到元素全部有序的排序算法。

如何进行冒泡排序:

 

Arrays类:是提供对数组进行排序、查询和修改等操作方法的工具类

Arrays类的内涵:

  • Arrays类位于java.util包

  • Arrays类提供操作数组的方法

    • 如排序、查询

    • Arrays类的sort()方法:通过快速排序算法对数组进行升序排列

      • Arrays.sort(数组名);

总结:

 


二维数组

 

二维数组定义:二维数组是使用两个下标访问的,以一维数组作为数组元素的数组。

 

二维数组的声明:

声明的语法:

数据类型[ ][ ] 数组名称;

或 

数据类型  数组名称[][];

 

int[ ][ ]  arr; //声明不指定列长度

或 

int arr[ ][ ];

 

声明同时初始化:

数据类型[ ][ ]  数组名={{值 1,值 2},{值 3,值 4}};

数据类型[ ][ ]  数组名=new 数据类型[ ][ ]{{值 1,值 2},{值 3,值 4}};

 

int[ ] m = {92,89,78};int [ ][ ] arr= new int[ ][ ]{ new int[]{90,91,79} , m , {93,88,77} }(3种方式都表示一个一维数组)

 

声明后初始化:

数据类型 数组名[ ] [ ]=new 数据类型[一维长度][二维长度];示例:int[ ][ ] arr=new int[4][3];

 

二维数组基本要素:

  • 数组名

  • 数组元素

  • 数组类型

  • 数组下标 (从0行0列开始)

    • 下标可以是变量,常量,表达式表达的整数

      • arr[0][0]、scores[i][j]、scores[i+j][4]

 

二维数组元素的赋值:

 

二维数组的长度:

  • arr.length一维的长度

  • arr[0].length二维的长度

 

二维数组的遍历:

public class DoubleArray {    

    public static void main(String[] args) {         

        int[][] arr={{90,91,79},{92,89,78},{93,88,77},{98,94,75}};      //声明二维数组

        for(int i=0;i<arr.length;i++){             //获取二维数组的行数

            for(int j=0;j<arr[i].length;  j++){               //获取二维数组的列数

                System.out.print(arr[i][j]+" ");               //获取二维数组第 i 行 j 列的元素

            }             

            System.out.println();         

        }             

    } 

}

多维数组的内涵和外延:

  • 内涵

    • 多维数组的本质是一维数组

    • 多维数组是数组嵌套数组

    • 内存中以一维数组形式存放

    • 数组中元素的下标个数与维度相同

  • 外延

    •  三维数组

    • 四维数组

    • N维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值