美文网首页
4、java数组

4、java数组

作者: bigpeng个人博客 | 来源:发表于2018-12-28 11:42 被阅读10次

    1、 数组的概念

    数组其实就是同一种数据类型的数据的集合。它是一种特殊的数据类型,不同于前面我们讲过的八种基本数据类型,即引用数据类型。

    我们可以把想象成一个盒子,盒子里面有一个一个的小格子,且每个格子都有编号,从0开始。然后将数据放到格子里面。我们就可以通过这个盒子的格子编号来取数据啦。

    2、 数组的好处

    每个数组都有固定的一个大小,其中存放的数据都有唯一的一个下标用来标示该数据的位置。然后我们可以根据它的下标来获取存放在该位置上的数据。非常的方便,快捷。如下图所示:

    3、数组特点:

    数组的特性:同一种类型 连续的内存地址 固定长度

    3、 数组的创建

    重点:数组是固定长度的。所以数组的创建的时候必须明确指定数组的大小。

    数组创建的方式有三种:

    3.1 定义的时候直接初始化

    即定义变量的时候呢,我们就给他直接赋值了。

    数据类型 变量名 数组内容

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

    3.2 定义时指定大小

    数据类型 变量名 new关键字 数据类型 数组大小(用中括号括起来)

    int[] arr2 = new int [4];

    这样我们就定义了一个四个存储空间的int数据类型的数组。

    3.3 定义时指定大小并初始化

    数据类型 变量名 new关键字 数据类型 数组值

    int[] arr3 = new int [] {1,2,3,4};

    4、 数组的初始化

    给已经定义好的数组赋值的话。可以通过数组下标来赋值。

    4.1 定义时直接初始化

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

    int[] arr1=new int[]{1,2,3,4};

    4.2 直接使用下标

    例如:

    int [] arr1=new int[3];

    arr1[0]=1;

    arr1[1]=3;

    arr1[2]=4;

    4.3 使用循环

    示例:

    int [] arr1=new int[3];

    for(int i=0;i<arr1.length;i++){

    arr1[i]=i+1;

    }

    5、 数组遍历

    数组的遍历即将数组中的数组循环的取出。具体可以使用我们之前学过的循环语句。

    6、 二维数组

    简单来讲二维数组即数组中存放的类型是数组,这就是我们说的二维数组。

    7、 二维数组的定义

    二维数组的定义跟一维数组的定义类似。关键点是要指定数组的大小,其中外层的一维数组必须指定其大小,而数组内部的数组可以指定也可以不指定。

    8、 二维数组的赋值

    前面我们讲了二维数组的定义,那么比如我们要将下图中的数据存入一个二维数组中。我们该怎么做呢?

    分析:

    这是一个4x4的矩阵。我们可以考虑用一个4x4的二维数组来存放。外层数组大小为4,内存数组大小亦为4.然后每一行是一个内部数组。这样我们就可以实施我们的定义和赋值啦。

    8.1直接创建赋值

    8.2 先定义后赋值

    9、 二维数组的遍历

    二维数组因为数组里面存放的是数组,所以遍历所有的数组的话,我们需要用两个循环来获取。

    10、 排序算法

    将一些没有规则的数据按照一定的规则排序的算法就是排序算法。排序是我们在程序中经常要用到的算法。常见的排序算法有冒泡排序,选择排序等

    10.1 冒泡排序

    冒泡排序:每次比较相邻的两个元素,如果前面的元素比后面的元素大,则交换两个元素的位置,这样比较一轮之后,最后的那个数就是最大的数。依此方法比较n次就会将n个数排序。

    10.2 选择排序

    选择排序:选择排序就是每次选取出最小的一个值和其位置,然后让其与未排序的序列的最前方的位置交换。

    11、栈内存和堆内存

    java虚拟机内存主要有两大块内存空间,一个是栈内存,一个是堆内存。
    1、栈内存主要用来存放基本数据类型的变量和数据,及引用类型的变量。
    2、堆内存主要用来存放引用类型的对象。
    3、栈内存的读写速度高于堆内存。

    相关文章

      网友评论

          本文标题:4、java数组

          本文链接:https://www.haomeiwen.com/subject/lqrukqtx.html