zoukankan      html  css  js  c++  java
  • 【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)

    【新手友好型视频】全面讲解Java一维数组(内含带答案和讲解的练习题彩蛋喔)看完即上手!更有详解版练习题来帮你加深印象~~

    视频讲解:

    点击这里即可到小乔的B站观看

    一、数组的概述

    数组(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]);
                 }
             }
    }
    

    讲解:

    1. 直接使用Arrays.sort()方法对a数组进行排序
    2. 遍历排序后的数组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+【练习题(带答案和详解)】)

    在这里插入图片描述

    推荐你看:

    推荐你看:

  • 相关阅读:
    在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware
    03-nginx虚拟主机配置
    解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
    02-nginx信号量
    RedHat Linux设置yum软件源为本地ISO
    01-nginx介绍及编译安装
    Linux.负载均衡
    01-MySQL优化大的思路
    10 华电内部文档搜索系统 search02
    10 华电内部文档搜索系统 search03
  • 原文地址:https://www.cnblogs.com/Qpgshare/p/12495941.html
Copyright © 2011-2022 走看看