点击这里即可到小乔的B站观看
数组(Array),是存储一系列 同类型数据元素 的一种数据结构。它通过数组名和一个整型下标可访问数组中每一个元素。
看完一维数组的概述呢,用以下图片做例子。我们来解决下面四个问题:
Q1 :“数组名”是什么? |
---|
A1:“数组名”是存储一系列同类型数据元素的一种数据结构的名字【例如上图的:“我的爱豆”】 |
Q2: 数组“下标(索引)”是什么? |
A2: 数组“下标(索引)”是从0→到“数组长度-1” |
Q3: “数组元素”是什么? |
A3: “数组元素”是添加到数组中的每一个常量【例如上图的:“易烊千玺”,"小乔","小乔1","小乔2","小乔3"】 |
Q4 :“数组长度”是什么 (注意:数组长度 一旦确定 就 不能更改 ) |
A4:“数组长度”是数组元素的总个数【例如上图共有:“易烊千玺”,"小乔","小乔1","小乔2","小乔3"5个元素,所以长度为5】 |
一般格式: |
---|
数据类型[]数组名称=new 数据类型 [] {元素1,元素2,……}; |
Eg:String [] wodeaidou = new String [] {“易烊千玺”,“小乔”, “小乔1”, “小乔2”, “小乔3”}; |
简便格式:(推荐使用) |
数据类型[]数组名称={元素1,元素2,……}; |
Eg: String [] wodeaidou = {“易烊千玺”,“小乔”, “小乔1”, “小乔2”, “小乔3”}; |
格式: |
---|
数据类型[]数组名称=new 数据类型 [数组长度]; |
Eg:String [] wodeaidou =new String [5]; |
在动态初始化的数组中赋值 |
数组名称 [下标] = 常量; 注意:数组下标从0开始——“长度-1”为止 |
Eg:wodeaidou[0]=“易烊千玺”; |
数组名.length即可得到数组的长度 |
---|
Eg: wodeaidou.length = 5; |
public static void main(String[] args) { String arr []= new String [5];//动态初始化 arr[0]="易烊千玺"; arr[1]="小乔"; arr[2]="小乔1"; arr[3]="小乔2"; arr[4]="小乔3"; for(int i = 0;i<arr.length;i++){//遍历数组,arr.length=5 System.out.println("第"+i+"个元素的值为"+arr[i]); } } 复制代码
过程 | 每次的输出结果 |
---|---|
i=0 arr.length =5 0<5 输出arr[0] | 第0个元素的值为易烊千玺 |
i=1 arr.length =5 1<5 输出arr[1] | 第1个元素的值为小乔 |
i=2 arr.length =5 2<5 输出arr[2] | 第2个元素的值为小乔1 |
i=3 arr.length =5 3<5 输出arr[3] | 第3个元素的值为小乔2 |
i=4 arr.length =5 4<5 输出arr[4] | 第4个元素的值为小乔3 |
√ void sort(int[] a) 对数组进行排序。 | 对数组进行排序。 |
---|---|
import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { int a[] = { 100, 120, 9, 45, 63, -1 };//静态初始化 Arrays.sort(a); for (int i = 0; i < a.length; i++) {//a.length=6 System.out.println("第" + i + "个元素的值为" + a[i]); } } } 复制代码
过程 | 每次的输出结果 |
---|---|
i=0 arr.length =6 0<6 输出arr[0] | 第0个元素的值为-1 |
i=1 arr.length =6 1<6 输出arr[1] | 第1个元素的值为9 |
i=2 arr.length =6 2<6 输出arr[2] | 第2个元素的值为45 |
i=3 arr.length =6 3<6 输出arr[3] | 第3个元素的值为63 |
i=4 arr.length =6 4<6 输出arr[4] | 第4个元素的值为100 |
i=5 arr.length =6 5<6 输出arr[5] | 第5个元素的值为120 |
数组索引越界异常(ArrayIndexOutOfBoundsException) |
---|
Eg:int arr = new int [2]; |
arr[0]=1; |
arr[1]=2; |
arr[2]=3;//索引越界。因为数组索引是从0 → “数组长度-1” |
空指针异常(NullPointerException) |
---|
int[] arr = null; |
System.out.println(arr[0]); |
arr引用没有指向实体,却在操作实体中元素 |
1.创建一个int型数组用来保存8个学生的成绩。int arr[]=new int[8];
2.Scanner 键盘输入8个学生的成绩
3.循环接收:用一个for循环遍历数组,并把每次从键盘输入的学生成绩保存到数组中
4.int sum=0;//,用来存放学生成绩总分,每一次添加成绩后把成绩相加
package com.task10; import java.util.Scanner; public class ArrayExercise { public static void main(String[] args) { int sum = 0;// 用来存放学生成绩总分 int arr[] = new int[8];// 用数组来存放8个学生成绩,下标是0-7 Scanner sc = new Scanner(System.in); for (int i = 0; i < arr.length; i++) {// 遍历数组,arr.length=8 arr[i] = sc.nextInt();// 将键盘输入的每一个成绩分别存放在数组中 sum = sum + arr[i];// 每一次添加成绩后把成绩相加 } System.out.println("总分为" + sum); } } 复制代码
过程 | 执行 | 每次输出的结果 |
---|---|---|
从键盘输入成绩100 i=0 arr.length=8 i<arr.length | arr[0]=100,sum=0+arr[0] | sum=100 |
从键盘输入成绩50 i=1 arr.length=8 i<arr.length | arr[1]=50,sum=100+arr[1] | sum=150 |
从键盘输入成绩70 i=2 arr.length=8 i<arr.length | arr[2]=70,sum=150+arr[2] | sum=220 |
从键盘输入成绩60 i=3 arr.length=8 i<arr.length | arr[3]=60,sum=220+arr[3] | sum=280 |
从键盘输入成绩80 i=4 arr.length=8 i<arr.length | arr[4]=80,sum=280+arr[4] | sum=360 |
从键盘输入成绩90 i=5 arr.length=8 i<arr.length | arr[5]=90,sum=360+arr[5] | sum=450 |
从键盘输入成绩40 i=6 arr.length=8 i<arr.length | arr[6]=40,sum=450+arr[6] | sum=490 |
从键盘输入成绩30 i=7 arr.length=8 i<arr.length | arr[7]=30,sum=490+arr[7] | sum=520 |
双重for循环【视频+图文】讲解传输门: 点击这里即可查看
【视频+图文】新手友好型Java return语句用法 讲解传输门: 点击这里即可查看
【视频+图文新手也友好】Java ++i(前自增)和i++(后自增)用法详解)
带continue语句的双重for循环【视频+图文】讲解传输门: 点击这里即可查看
带break语句的双重for循环【视频+图文】讲解传输门: 点击这里即可查看
【你需要的各种数据类型转换,这里都有~】传输门: 点击这里即可查看
新手友好型Eclipse快捷键大全(解密为什么他们的代码写的又快又好~)