数 组
1.数组的概念:就是一种容器,可以同时存放多个数据值。
2.数组的好处:程序会自动给数组中的元素分配从0开始的下标,方便操作
3.数组的格式:
定义数组的有两种
动态初始化(指定长度):在创建数组的时候,直接指定数组当中的数据元素个数。
静态初始化(指定内容):在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。
动态初始化基本格式(指定长度):
元素类型[] 数组名=new 元素类型[数组长度];
int[] a=new int[3];
静态初始化基本格式(指定内容):
标准格式:元素类型[] 数组名=new 元素类型[]{元素,元素,......};
int[] a=new int[]{1,5,9};
简化格式:元素类型 数组名={元素,元素,......}
int[] a={1,5,9};
Java程序在运行时需要给内存分配空间。为了提高运算效率又对空间进行了不同区域的划分,因为每一片区域都有了特定的处理数据和内存的方式。
4.堆栈:
在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点对比:指令队列,先进先出(FIFO—first in first out)。堆栈,先进后出 (FILO—First-In/Last-Out)
堆栈是一种存储部件,即数据的写入跟读出不需要提供地址,而是根据写入的顺序决定读出的顺序。
注:栈就是一条流水线,而流水线中加工的就是方法的主要程序,在分配栈时,由于程序是自上而下顺序执行,就将程序指令一条一条压入栈中,就像流水线一样。而堆上站着的就是工作人员,他们加工流水线中的商品,由程序员分配:何时加工,如何加工。而我们通常使用new运算符为对象在堆上分配内存(C#,Java),堆上寻找对象的任务交给句柄,而栈中由栈指针管理。
栈内存:用于存储局部变量,当数据使用完毕内存会自动释放;
堆内存:1:数组和对象,用过new关键字创建的对象实体都存放在堆内存中。
2:每个实体都有内存地址。
3:实体中的变量都有默认的初始化值。
4:如果实例不在被使用java会自动启动垃圾回收器
6.操作数组:
通过for循环逐个取出数组中的值
int[] array={15,20,5,3,6,7,9,8,14};
for(int a=0;a<array.length;a++){
System.out.println(“array[”+a+”]=”+array[a]);
}
在数组中提供了一个可以直接获取数组长度的属性 ”length“我们只需要通过 “数组名.length”可以直接获取数组个数如下:
int[] array={15,20,5,3,6,7,9,8,14};
for(int a=0;a<array.length;a++){
System.out.println(“array[”+a+”]=”+array[a]);
}
获取数组中的最大值
int[] array={15,20,14,8,9,10,32};
int max=array[0];
for(int a=1;a<array.length;a++){
if(max < array[a]){
max=array[a];
}
}
System.out.println(max);
获取数组中的最小值
int[] array={15,20,14,8,9,10,32};
int max=array[0];
for(int a=1;a<array.length;a++){
if(max > array[a]){
max=array[a];
}
}
System.out.println(max);
7.数组的排序:
选择排序:从0下标开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小下标处。
int[] array={15,20,14,8,9,10,32};
for(int a=0;a<array.length-1;a++){
for(int b=a+1;b<array.length;b++){
if(array[a]>array[b]){
int bijiao=array[a];
array[a] =array[b];
array[b] =bijiao;
}
}
冒泡排序:相邻的两个元素进行比较如果符合条件就换位。
int[] array=new int[]{15,20,14,8,9,10};
for(int a=0;a<array.length-1;a++){
for(int b=0;b<array.length-a-1;b++){
if(array[b]>array[b+1]){
int aa=array[b];
array[b] =array[b+1];
array[b+1] =aa;
}
}
}
快速排序:快速排序就是运用了java中给我们提供的一个类”Arrays”下面的sort方法来实现升序排序,此方法需要导入“import java.util.Arrays;” 包。
int[] array={15,20,14,8,9,10,32};
Arrays.sort(array);
for(int c=0;c<array.length;c++){
System.out.println(array[c]);
}