数组(容器)
数组是一组数据类型相同的数据的组合,将这些数据统一的管理起来;
数组的特点:
数组本身是一个引用数据类型;
数据内存储的类型可以是基本类型,也可以是引用类型;
数组是在堆内存中的一串连续的地址存在;
数组在初始化时必须指定长度及内部存储元素类型;
堆内存的数组空间长度一旦确定 不能再次发生改变;
栈内存的变量中存储的是数组的地址引用;
1.数组的定义(创建 声明);
数据类型[] 数组名字;
int[] x; 或 int x[];或int []x;
char[] y;
boolean[] z;
String[] m;
2.数组的初始化(赋值);
静态初始化;有长度、有元素
int[] aa = new int[]{10,20,30,40,50};
或 int[] aa={10,20,30,40,50};
或 int[] aa;
aa=new int[]{10,20,30,40,50};
动态初始化;有长度 没有元素(不是真的没有,默认值) 长度必须>=0;
int[] aa = new int[5];
整数默认值---0;
浮点数默认值---0.0;
字符型默认值---0--char;
布尔型默认值---false;
引用数据默认值---null;
3.数组元素的访问;
通过元素在数组中的位置来访问;位置——>index索引;
索引是有取值范围【0---数组长度-1】;aa.length;
如果数组的索引超出了上述范围,会出现一个运行时异常 arrayindexoutofBounds(数组索引越界)
aa[3]=400;
4.数组元素的遍历(轮询);
通过循环的方式访问数组的每一个元素;
for(自己定义的变量(接收数组内每一个元素):遍历的数组)//增强的for;
for(int bb:aa)
正常的for 有三个必要条件;index索引 找到某一个元素的位置;
可以通过index直接访问数组的某一个位置;存取值;
增强的for 有两个条件;
只能取值,不能存值;
没有index索引 找不到元素到底是哪一个;
5.基本数据类型和引用数据类型在存储时的区别;
基本类型变量空间存储的是值 传递的是值;一个改变 另一个不会跟着改变;
引用类型变量空间存储的是地址(引用) 传递的就是引用 一个改变 另一个跟着改变;
所有的变量空间都存储在栈内存;
变量空间可以存储基本数据类型 也可以存储引用数据类型;
1.创建一个数组 用来存储1-100之间的偶数;
a)创建一个数组 动态初始化;
元素个数比较少 静态;元素个数很多有规律 动态;
b)用了两个循环,一个只为了存值;一个为了查看;
存放时直接看结果可能由于存放误操作---看时正确 之后就发生变化;
存放不一定必须查看,存是一件事;查是一件事;
2.创建一个数组 存储2-100之间的素数(质数);
3.数组元素的排序(冒泡 选择 插入 快速 希尔 堆排序 桶排序 归并排序 递归...);
4.用户的登录认证(用数组当作小数据库,存储,用户验证);