【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)
【新手友好型视频】全面讲解Java一维数组(内含带答案和讲解的练习题彩蛋喔)看完即上手!更有详解版练习题来帮你加深印象~~
视频讲解:
一、数组的概述
数组(Array),是存储一系列同类型数据元素的一种数据结构。它通过数组名和一个整型下标可访问数组中每一个元素。
看完一维数组的概述呢,用以下图片做例子。我们来解决下面四个问题:
| Q1 :“数组名”是什么? |
|---|
| A1:“数组名”是存储一系列同类型数据元素的一种数据结构的名字【例如上图的:“我的爱豆”】 |
| Q2: 数组“下标(索引)”是什么? |
| A2: 数组“下标(索引)”是从0→到“数组长度-1” |
| Q3: “数组元素”是什么? |
| A3: “数组元素”是添加到数组中的每一个常量【例如上图的:“易烊千玺”,"小乔","小乔1","小乔2","小乔3"】 |
| Q4 :“数组长度”是什么(注意:数组长度一旦确定就不能更改) |
| A4:“数组长度”是数组元素的总个数【例如上图共有:“易烊千玺”,"小乔","小乔1","小乔2","小乔3"5个元素,所以长度为5】 |
二、一维数组的使用
1.静态初始化(指定数组内容)
看下面的图片,更便于理解
| 一般格式: |
|---|
| 数据类型[]数组名称=new 数据类型 [] {元素1,元素2,……}; |
| Eg:String [] wodeaidou = new String []{“易烊千玺”,“小乔”, “小乔1”, “小乔2”, “小乔3”}; |
| 简便格式:(推荐使用) |
| 数据类型[]数组名称={元素1,元素2,……}; |
| Eg: String [] wodeaidou = {“易烊千玺”,“小乔”, “小乔1”, “小乔2”, “小乔3”}; |
2.动态初始化(指定数组长度)
| 格式: |
|---|
| 数据类型[]数组名称=new 数据类型 [数组长度]; |
| Eg:String [] wodeaidou =new String [5]; |
| 在动态初始化的数组中赋值 |
| 数组名称 [下标] = 常量; 注意:数组下标从0开始——“长度-1”为止 |
| Eg:wodeaidou[0]=“易烊千玺”; |
3.想要得到数组长度该怎么办?
| 数组名.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 |
结果:
三、Arrays工具类中的sort方法(sort方法用的多,我们具体讲一下)
| √ void sort(int[] a) 对数组进行排序。 | 对数组进行排序。 |
|---|---|
例子:使用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]);
}
}
}
讲解:
- 直接使用Arrays.sort()方法对a数组进行排序
- 遍历排序后的数组a,输出数组排序后的每一个元素
| 过程 | 每次的输出结果 |
|---|---|
| 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引用没有指向实体,却在操作实体中元素 |
五、一维数组练习题
问题:声明一个int型的数组,循环接收8个学生的成绩,计算这8个学生的总分。
思路:
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 |
结果:
六、彩蛋(本期视频使用的PPT+【练习题(带答案和详解)】)
推荐你看:
推荐你看:
【视频+图文新手也友好】Java ++i(前自增)和i++(后自增)用法详解点击这里即可查看
双重for循环【视频+图文】讲解传输门:点击这里即可查看
带continue语句的双重for循环【视频+图文】讲解传输门:点击这里即可查看
带break语句的双重for循环【视频+图文】讲解传输门:点击这里即可查看
【你需要的各种数据类型转换,这里都有~】传输门:点击这里即可查看
【视频+图文】新手友好型Java return语句用法
如果你觉得这篇文章还不错,麻烦帮我点个赞鸭!可以让更多人看到这篇文章。让我有动力继续更技术文~

【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)的更多相关文章
- Java实现数组去除重复数据的方法详解
一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer ...
- 061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结
061 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 08 一维数组总结 本文知识点:一维数组总结 总结 注意点
- 060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序
060 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 07 冒泡排序 本文知识点:冒泡排序 冒泡排序 实际案例分析冒泡排序流程 第1轮比较: 第1轮比较的结果:把最 ...
- 059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环
059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环 本文知识点:增强型for循环 增强型for循环格式 案例练习增强型for循环 数组名字 ...
- 058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值
058 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 05 案例:求数组元素的最大值 本文知识点:求数组元素的最大值 案例:求数组元素的最大值 程序代码及其执行过程 ...
- 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...
- 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...
- 055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念
055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念 本文知识点:数组的概念 数组的声明创建.初始化 在学习数组的声明创建.初始化前,我们可以和之 ...
- 054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述
054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级 ...
随机推荐
- elasticsearch5.4安装
1.从官网下载ES 安装包: elasticsearch-.tar.gz 2.解压到要安装的目录 注意:一定要切换用户,不能用root用户解压,不能用root用户启动 tar -zxvf elasti ...
- tomcat部署项目方式
三大部署方式1. Context描述文件部署通过独立的Context文件描述清楚项目的访问路径和地址,tomcat在启动的时候会解析这个Context文件,创建一个Context对象. Conte ...
- IP地址结构分类(包括主机号和网络好计算)
IP地址:互联网上的每个接口的唯一标识. 长度:32bit. 五类不同的互联网地址格式: 各类IP地址范围: 点分十进制:32位的地址通常写成四个十进制数,其中每个整数对应一个字节. 主机号和网络的计 ...
- algorithm-question
主键都相同,选择排序和插入排序谁快 选择排序:比较N*(N-1)/2,交换0:插入排序:比较N-1,交换0:插入排序更 大专栏 algorithm-question快 逆序数组,插入排序与选择排序 ...
- PowerDesigner的文章
来自iteye的PowerDesigner的相关文章,写的不错,这里引用一下 PD12 建模工具的使用 博客分类: PowerDesigner .net http://jpkc.zjbti.net.c ...
- <JZOJ5938>分离计划
emm骚操作 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm ...
- ES6-Set与Map数据结构
Set 实例的属性和方法 Set类似与数组,但是成员值唯一没有重复! let arr = [3, 5, 2, 2, 5, 5]; let unique = [...new Set(arr)]; // ...
- LLDB奇巧淫技
打印视图层级 这个相信很多人都会了,是ta是ta就是ta recursiveDescription 用法大概就是如下 123 po [self.view recursiveDescription] p ...
- jQuery2.0.0版本以后不再支持ie8的原因
在引用jQuery时,引用高版本的Jq会在IE8下报错,在网上查了一下,jq在2.0+的版本就已经放弃对ie8的支持了.之前没有仔细研究过jq版本,借此机会去看了一下jq版本的知识.一.如何查看jq的 ...
- 18岁,赚到了人生中的第一个10W!
大家好,我是九歌 今年我18岁,赚到了我人生中的第一个10W 截至2019年10月14日,我已经做了43天的公众号啦,粉丝也悄然增长到了1W8,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...