本文目标:学习使用数组
一、什么是数组
是一个可以存放多个同一类型的数据容器。
例如:int类型数组只能存int类型、String类型只能存String
二、数组的特点
上面阐述数组是一个容器,问题来了?
1.怎么知道某个元素在数组位于那个位置--------通过下标来数
2.数组到底可以存多少个?---------可以声明数组的长度
1.数组的下标:从0开始
2.数组的长度一旦声明,则不可更改
三、数组的声明
数组有两种声明方式:分别是静态初始化和动态初始化
1.静态初始化:
数组里面的每个下标对应的位置都存放了元素
于是我们知道了:
-----数组的长度
-----数组里面每个具体元素
格式:
数据类型 数组名[]=new 数组名[]{元素1,元素2,元素3};可以简写成如下:数据类型 数组名[]={元素1,元素2,元素3};
例如:
int arr1[]={12,34,45,56};//这是数组1String arr2={"盖伦","赵信"};//这是数组2
通过观察静态声明数组,发现:
数组长度看得到,上面数组1长度为4,数组2长度为2
数组里面每个具体的值都知道,例如:
数组1下标为0的位置,存的值是12
数组2下标为1的位置,存的值是"赵信"
2.动态初始化:
创建数组的时候,只声明了数组的长度,但是里面具体的每个下标位置都是空的。
我们只能知道:数组的长度
格式:
数据类型 数组名[]=new 数据类型[数组的长度]
例如:
//声明一个int类型 长度为5的数组int arr1[]=new int[5]//声明一个double类型长度为3的数组double arr2[]=new double[5];
四、数组的访问和遍历
上面,我们知道如何去创建数组了,下面我们演示如何访问数组
格式:
数组名[下标值]
列如
//访问的是下标值为2,的元素 //别忘了,下标从0开始数arr1[2]
示例代码1:
public class ArrayDemo1 {public static void main(String[] args) {//1.创建个数组--有数据String arr1[]={"上海","成都","广州"};//2.访问数组-赋值String city=arr1[1];//3.输出结果System.out.println(city);//成都}}
这样一个个下标去访问,效率比较慢,我们可以结合前面的循环来访问数组:
public class ArrayDemo2 {public static void main(String[] args) {//1.准备数组String arr1[]={"上海","成都","广州"};//2.循环遍历for (int i = 0; i < arr1.length; i++) {//3.循环输出每次访问的结果System.out.println(arr1[i]);}}}
五、数组的求和、最值
求{12,34,45,56}的和与最小值
//求和的程序public class ArrayDemo3 {public static void main(String[] args) {//1.准备数组、和int arr1[]={12,34,45,56};int sum=0;//2.开始遍历-依次取出--累加for (int i = 0; i < arr1.length; i++) {sum+=arr1[i];}//3.输出结果System.out.println(sum);}}
求最小值的程序
public class ArrayDemo4 {public static void main(String[] args) {//1.准备数组--设最小值为数组下标第0位int arr1[]={12,34,45,56};int min=arr1[0];//2.遍历依次取出 与最小值比--小的赋值给最小值for (int i = 0; i < arr1.length; i++) {if(min>arr1[i]){min=arr1[i];}}//3.输出结果System.out.println(min);}}
六、数组的排序
准备一堆数字:{23,12,3,45}
排序:从小到大排(正序)、从大到小排 (倒叙)
排序步骤:正序
1.导包------import java.util.Arrays;2.调方法-----Arrays.sort(数组名)3.遍历数组
实现代码:
import java.util.Arrays;public class ArrayDemo5 {public static void main(String[] args) {//1.准备数组int arr1[]={12,34,45,56};//3.调用方法Arrays.sort(arr1);//4.遍历数组for (int i = 0; i < arr1.length; i++) {//5.依次输出System.out.println(arr1[i]);}}}
效果:
七、冒泡排序实现
冒泡排序的特点:
1. 从左到右,两两相比,如果前面比后面大,则互相交换位置
2. 每趟找出最高值
图解:
实现代码:
int arr[] = {2, 15, 112, 34, 156, 98};//1.for循环趟数 for (int i = 0; i < arr.length-1; i++) {//2.for循环 每趟比较几次for (int j = 0; j < arr.length-1-i; j++) {//3.如果比后面大 则交换位置if(arr[j]>arr[j+1]){//4.换值int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}//5.输出排序后的数组}for (int j = 0; j < arr.length; j++) {System.out.println(arr[j]);}
八.往期推荐
- 自学JAVA第1天
- 自学JAVA第2天
- 自学JAVA第3天
- 自学JAVA第4天
- 自学java第5天
- 自学java第6天
- 自学java第7天:循环的一些练习