我们要开始要了解新的内容了
你准备好了吗?
酋长的终极目标
部落不倒带你们刷 Java 到老!

java学习交流群234811600
数组
数组是具有相同数据类型的一组数据的集合。
当需要使用的变量很多,而且数据类型相同时,逐个声明就非常麻烦
这个时候就可以声明一个数组,然后对数组进行操作,这样就很方便了!
在 Java 语言中虽然基本数据类型不是对象
但是由基本数据类型组成的数组是对象
而且在程序设计中引入数组可以有效的管理和处理数据哦!
首先我们先来认识一维数组
在使用数组之前,我们需要声明数组,方式有两种:
int[] a;或int a[];
仅仅是声明是不够的,还需要给数组分配空间
a = new int[5];
这样我们就给这个 a 数组分配了5个空间
这时候5个空间的都是有初始值的值为0;
那么现在我们可以初始化数组了
数组的初始化分为两种方式:
动态初始化:数组的声明分配空间与赋值操作分开进行
静态初始化:在数组数组的声明的时候为数组分配空间并赋值

java学习交流群234811600
那么什么时候用动态初始化,什么时候用静态初始化呢?
1.无论是动态初始化,还是静态初始化,最终的内存分配都是一样的
2.如果在创建数组的时候就知道数组中应该存储什么数据,这个时候当然采用静态初始化
3.如果在创建数组的时候,无法预测数组中存储什么数据,则只能先开辟空间,也就是说这时候使用动态初始化
相信小伙伴们已经发现了
我们在给数组 d 赋值的时候利用了
"d[]"这里指的就是d 数组的第几个元素
“[]”里面的数字就是元素的下标
注:我们数组的下标并不是从“1”开始的而是“0”
那该如何输出数组中的元素呢?
下面给出了两种方式

java学习交流群234811600
(a.length 表示数组 a的长度)
是不是感觉利用for循环输出更方便一点!
二维
二维数组:
可以将二维数组看成是一种特殊的一维数组
它的每个元素都是一维数组!

java学习交流群234811600
可以把一维数组想象成一条线


把二维数组就可以想象成一个平面


这样子是不是好理解一些了呢?
知识点
好了给大家总结一下知识点:
敲黑板了!


数组:
数组是一种引用类型
数组是一种简单的数据结构,一种线性结构
数组是一个容器,可以用来存储其他元素数组可以存储任意数据类型的元素
数组分为:一维数组,二维数组,三维数组...多维数组
数组中存储的元素类型是统一的
数组的长度不可改变,数组一旦创建长度固定
数组对象存放中堆中
那么给最后小伙伴们留个小练习
试着用数组输出杨辉三角!
(不知道什么是杨辉三角的同学)

你知道百度吗?
.
.
.
.
.
.
.
你以为文章就到此结束啦?
NO!
先给你 20 秒想想上面的答案!
快
.
.
.
算了估计你也想不出来!
娜姐还是告诉你算了!
解答
杨辉三角(有很多别称就不详细介绍了,还不懂在百度)
有以下的特点:
1.每行端点与结尾的数为1
2.每行数字左右对称,由1开始逐渐变大
3.每个数字等于上一行的左右两个数字之和
即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和
结果:
知道了吗? 懂了吗?
我们继续
那么接下来分享的就是
数组的排序方法
选择
选择排序
那我们就定义个数组让他从小到大排列吧!
理一下思路
我们的数组时线性排列的
那么元素排列的顺序就是
a[0] a[1] a[2] …a[n]
首先定义一个变量 min 记录数据是最小值的位置(下标)
然后让 a[min] 和后面的数比
if(a[min]>a[1])
将这个数的下标给 min
min = 1;
让后继续比,知道数组的最后一为
这时 a[min] 里的数值最小
把 a[0] 和 a[min] 交换
然后再循环把第二小的数值给 a[1]
这样一步一步完成数组的从小到大排序

java学习交流群234811600
结果:

java学习交流群234811600
冒泡
冒泡排序
不知道伙伴们有没有见过从水底冒出的泡泡
在下面的时候还很小 越往上越大
冒泡排序的思路
根据数组的长度循环遍历
判断如果前一个值小于后一个值
就把两个数值交换

java学习交流群234811600
结果:

java学习交流群234811600
其实娜姐想告诉你
关于操作数组的方法
其实是有写好的包的!
我们只要通过 import 导入一个包就可以了



那为什么还要分享给大家呢?
一.是想给小伙伴们分析一下代码的思路原理
(我们不能光会用不懂思路)
二.就是因为有的一些面试题会现场让你谈一下
选择排序和冒泡排序的优缺点
或者现场写一个冒泡排序
三.就是娜姐当年就是这么过来的
我觉得你们也得这样过来

java学习交流群234811600
想要操作数组的方法吗?
想要的话可以全部给你,去找吧!所有方法都放在这里!

java学习交流群234811600
只要导一下包就可以了
这个包里的方法就不给大家详细介绍了!
小伙伴们自己去查查吧!