六:数 组

本文详细介绍了Java中的数组概念,包括数组的理解、基本要素、特点以及使用步骤。重点讲解了一维数组的四种操作方式:分步写、合并写、赋值合并写和简写,并给出了具体示例代码。同时,提到了遍历数组的方法和使用增强for循环遍历数组的技巧。最后,提供了两个练习题目以加深理解。
摘要由CSDN通过智能技术生成

目录

6.1、数组的概述

        6.1.1、数组的理解

        6.1.2、数组的基本要素:

        6.1.3、数组特点

        6.1.4、使用数组(四步走)

6.2、一维数组的使用

        6.2.1、分步写(数组声明、分配空间、赋值、使用)

        (1)数组声明: 数据类型 数组名[]; 或者 数据类型[] 数组名;(最常用写法)

        (2)分配空间:数组名 = new 数据类型[数组长度];

        (3)赋值: 数组名[下标] = 数据; 注意:下标从0开始

        (4)使用数据:  数组名[下标]

        6.2.2、合并写(数组声明和分配空间合并、赋值、使用)

        (1)数组声明和分配空间一起写:数据类型[] 数组名 = new 数据类型[数组长度];   或者:数据类型 数组名[] = new 数据类型[数组长度];

         (2)赋值: 数组名[下标] = 数据; 注意:下标从0开始

         (3)使用 :数组名[下标]

         6.2.3、合并写(数组声明、分配空间和赋值合并写)

        (1)数组声明、分配空间和赋值合并写:数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n}; 或者:数据类型 数组名[] = new 数据类型[]{数据1,数据2,...,数据n}

        6.2.4、合并简写(数组声明、分配空间、赋值合并简写)

         (1)数组声明、分配空间、赋值合并简写:数据类型[] 数组名 = {数据1,数据2,...,数据n};  或者:数据类型 数组名[] = {数据1,数据2,...,数据n};

        6.2.5、上述6.2.1-6.2.4案例代码:

        6.2.5、案例1:

        6.2.6、遍历数组:按照数组元素顺序输出数组元素

        6.2.7、使用 增强for循环遍历数组

        6.2.8、练习


6.1、数组的概述

        6.1.1、数组的理解

  1. 数组(Array):数组是一个变量,存储相同数据类型的一组数据

        /*
         * 变量:存储数据的空间(装数据的容器),只能存储一个数据 
         * 数组:存储数据的空间(装数据的容器),可以存储多个相同类型的数据
         * 集合:存储数据的空间(装数据的容器),可以存储多个不同类型的数据
         */

        6.1.2、数组的基本要素:

  1. 标识符
  2. 数组元素
  3. 元素下标:从0开始
  4. 元素类型

        6.1.3、数组特点

  1. 所有数据元素在内存储中占用连续的存储单元
  2. 具有相同的名称
  3. 具有不同的下标
  4. 使用前必须满足“先定义,后使用”

        6.1.4、使用数组(四步走)

  1. 声明数组                    int[] a;
  2. 分配空间                    a = new int[5];
  3. 赋值                           a[0] = 8;
  4. 处理数据(使用)      a[0] = a[0]*10;

        1、声明数组: 告诉计算机数据类型是什么
        2、分配空间: 告诉计算机分配几个连续的空间
        3、赋值:向分配的格子里放数据
        4、处理数据:对数据进行处理

6.2、一维数组的使用

        6.2.1、分步写(数组声明、分配空间、赋值、使用)

        (1)数组声明: 数据类型 数组名[]; 或者 数据类型[] 数组名;(最常用写法)

		// (1)数组声明: 数据类型 数组名[]; 或者 数据类型[] 数组名;(最常用写法)
		// 声明一个int类型的数组arr
		int[] arr;

        (2)分配空间:数组名 = new 数据类型[数组长度];

		// (2)分配空间: 数组名 = new 数据类型[数组长度];
		// arr里能存储5个数据,分配5个空间
		arr = new int[5];

        (3)赋值: 数组名[下标] = 数据; 注意:下标从0开始

		// (3)赋值: 数组名[下标] = 数据; 注意:下标从0开始
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 45;
		arr[3] = 55;
		arr[4] = 99;

        (4)使用数据:  数组名[下标]

		// (4)使用数据: 数组名[下标]
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);
		System.out.println(arr[3]);
		System.out.println(arr[4]);

        6.2.2、合并写(数组声明和分配空间合并、赋值、使用)

        (1)数组声明和分配空间一起写:数据类型[] 数组名 = new 数据类型[数组长度];   或者:数据类型 数组名[] = new 数据类型[数组长度];

		//合并写:声明数组和分配空间一起写
		//数据类型[] 数组名 = new 数据类型[数组长度];   数据类型 数组名[] = new 数据类型[数组长度];
		
		//声明一个长度为8的String类型的数组
		String[] strs = new String[8];

         (2)赋值: 数组名[下标] = 数据; 注意:下标从0开始

		//赋值:数组名[下标] = 数据; 注意:下标从0开始
		strs[0] = "abc";

         (3)使用 :数组名[下标]

         6.2.3、合并写(数组声明、分配空间和赋值合并写)

        (1)数组声明、分配空间和赋值合并写:数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n}; 或者:数据类型 数组名[] = new 数据类型[]{数据1,数据2,...,数据n}

		//数组声明、分配空间、赋值合并写
		//数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n}; 或者 数据类型 数组名[] = new 数据类型[]{数据1,数据2,...,数据n}
		//声明一个double类型的数组,里面存储了12.5  22.5  15.8   56.9这4个数据
		double[] nums = new double[]{12.5,22.5,15.8,56.9};

        6.2.4、合并简写(数组声明、分配空间、赋值合并简写)

         (1)数组声明、分配空间、赋值合并简写:数据类型[] 数组名 = {数据1,数据2,...,数据n};  或者:数据类型 数组名[] = {数据1,数据2,...,数据n};

		//数组声明、分配空间、赋值合并写可以简写
		//数据类型[] 数组名 = {数据1,数据2,...,数据n};  或者 数据类型 数组名[] = {数据1,数据2,...,数据n};
		String[] strings = {"abc","qwe","asdf","zxcvb"};
		char[] chars = {'你','好','世','界'};

        6.2.5、上述6.2.1-6.2.4案例代码:

package com.bdqn.demo01;

public class Demo01 {

	public static void main(String[] args) {
		/*
		 * 变量:存储数据的空间(装数据的容器),只能存储一个数据 
		 * 数组:存储数据的空间(装数据的容器),可以存储多个相同类型的数据
		 * 集合:存储数据的空间(装数据的容器),可以存储多个不同类型的数据
		 */

		// 数组声明、分配空间(告诉你数组里能存储多少个数据/数组长度)、赋值、使用
		// 分步写
		// (1)数组声明: 数据类型 数组名[]; 或者 数据类型[] 数组名;(最常用写法)
		// 声明一个int类型的数组arr
		int[] arr;
		
		// (2)分配空间: 数组名 = new 数据类型[数组长度];
		// arr里能存储5个数据,分配5个空间
		arr = new int[5];
		
		// (3)赋值: 数组名[下标] = 数据; 注意:下标从0开始
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 45;
		arr[3] = 55;
		// arr[5] = 100; //ArrayIndexOutOfBoundsException 数组下标越界异常
		// 面试题:写出你在开发过程中经常遇到的5个异常----》在学习过程中收集遇到过的异常
		
		// (4)使用数据: 数组名[下标]
		System.out.println(arr[0]);
		System.out.println(arr[1]);
		System.out.println(arr[2]);
		System.out.println(arr[3]);
		System.out.println(arr[4]);//0  int类型的数组元素默认值为0
		
		
		//合并写:声明数组和分配空间一起写
		//数据类型[] 数组名 = new 数据类型[数组长度];   数据类型 数组名[] = new 数据类型[数组长度];
		
		//声明一个长度为8的String类型的数组
		String[] strs = new String[8];
		
		//赋值
		strs[0] = "abc";
		System.out.println(strs[0]);
		System.out.println(strs[1]);//null  String类型的数组元素默认值为null
		
		/*
		 * byte/short/int/long类型数组元素默认值:0
		 * float/double类型数组元素默认值:0.0
		 * char类型数组元素默认值:" "
		 * boolean类型数组元素默认值:false
		 * String类型数组元素默认值:null 
		 * 
		 */
		
		
		//数组声明、分配空间、赋值合并写
		//数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n}; 或者 数据类型 数组名[] = new 数据类型[]{数据1,数据2,...,数据n}
		//声明一个double类型的数组,里面存储了12.5  22.5  15.8   56.9这4个数据
		double[] nums = new double[]{12.5,22.5,15.8,56.9};
		//上述数组声明、分配空间、赋值合并写可以简写
		//数据类型[] 数组名 = {数据1,数据2,...,数据n};  或者 数据类型 数组名[] = {数据1,数据2,...,数据n};
		String[] strings = {"abc","qwe","asdf","zxcvb"};
		char[] chars = {'你','好','世','界'};
		
	}

}

        6.2.5、案例1:

1、声明一个长度为10的int类型的数组,然后用键盘录入给数组元素赋值

package com.bdqn.demo01;

import java.util.Scanner;

public class Demo02 {

	public static void main(String[] args) {
		// 声明一个长度为10的int类型的数组,然后用键盘录入给数组元素赋值
		int[] nums = new int[10];

		//创建Scanner类对象
		Scanner input = new Scanner(System.in);
		
		//给数组元素赋值
		for(int i =0;i<10;i++){
			System.out.println("请输入第"+(i+1)+"个数据:");
			nums[i] = input.nextInt();
		}
	}
}

        6.2.6、遍历数组:按照数组元素顺序输出数组元素

        方式1、通过数数的方式数出数组有多少个元素

        方式2、通过 数组名.length表达出数组有多少个元素

package com.bdqn.demo01;

public class Demo03 {
	
	public static void main(String[] args) {
		int[] nums = {11,22,33,44,23,56,24,78,94,71,66,49,29,100,234,15,36,75,67};
		
		//遍历数组
		for(int i =0;i<19;i++){
			System.out.print(nums[i]+" ");
		}
		
		//数组名.length:获取数组元素个数(数组长度)
		//将数组nums[]的数组长度赋给int型变量changDu
		int changDu =nums.length;
		System.out.println("nums数组中元素个数:"+changDu);
		
		//遍历数组(通过nums.length)
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
		

	}

}

        6.2.7、使用 增强for循环遍历数组

      -->快捷键:Alt+/ 然后选择即可

         //使用增强for循环遍历数组
        /*
         * 语法结构:
         *     for(数据类型 变量名:数组名或者集合名){
         *             //代码
         *     }
         * 
         * 执行机制:
         *         将数组里或者集合里的元素依次取出来之后存储到变量中,然后你可以通过操作变量达到操作数组或集合中元素的目的
         * 
         */

package com.bdqn.demo02;

public class Demo02 {

	public static void main(String[] args) {
		int[] nums = {11,22,67,89,35,61,29};
		
		//使用for循环来遍历数组
		for (int i = 0; i < nums.length; i++) {
			System.out.println(nums[i]);
		}
		
		System.out.println("---------------------");
		
		//使用增强for循环遍历数组
		/*
		 * for(数据类型 变量名:数组名或者集合名){
		 * 		//代码
		 * }
		 * 执行机制:
		 * 		将数组里或者集合里的元素依次取出来之后存储到变量中,然后你可以通过操作变量达到操作数组或集合中元素的目的
		 * 
		 */
		for(int a:nums){
			System.out.println(a);
		}
		
		
		String[] strs = {"qwe","123","qasd","hyjy"};
		for (String string : strs) {
			System.out.println(string);
		}

	}

}

        6.2.8、练习

练习01:猜数游戏

        /*
         * 有一个数列:8,4,2,1,23,344,12
         * 循环输出数列的值
         * 求数列中所有数值的和
         * 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 
         */

        

练习02:求数组中的最大值

package com.bdqn.demo02;

import java.util.Scanner;

public class Demo03 {

	public static void main(String[] args) {
		/*
         *练习01:
		 * 有一个数列:8,4,2,1,23,344,12
		 * 循环输出数列的值
		 * 求数列中所有数值的和
		 * 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 
		 */
		
		int[] nums = {8,4,2,1,23,344,12};
		
		//循环输出数列的值
		for (int i : nums) {
			System.out.println(i);
		}
		
		//求数列中所有数值的和
		int sum = 0;
		for (int i : nums) {
			sum+=i;
		}
		System.out.println("数组元素之和:"+sum);
		
		//猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 
		Scanner input = new Scanner(System.in);
		//获取键盘输入的数据
		System.out.println("请输入你要猜测的数据:");
		int guess = input.nextInt();
		//将数组中的数据按照顺序取出来,和你猜测的数据进行比较,一旦有一个数据与猜测的数据相等,就说明数组中包含你要猜测的数据,后面就不需要再比较
		for (int i = 0; i < nums.length; i++) {
			//比较
			if(nums[i]==guess){
				System.out.println("数组中有你猜测的数据");
				break;
			}
			
			//如果比较到了最后一个数据,说明没有你要猜测的数据
			if(i==nums.length-1){
				System.out.println("数组中没有你要猜测的数据");
			}
		}

	}

}
package com.bdqn.demo03;

public class Demo01 {

	public static void main(String[] args) {
		// 求数组最大值
		int[] nums = {67,24,17,56,29,88,34};
		
		//假设数组中第一个元素为最大值
		int max = nums[0];
		
		//数组中第2个元素与假设的最大值进行比较,如果第二个元素比假设的最大值大,取代最大值		
		for(int i =0;i<nums.length;i++){
			//比较
			if(nums[i]>max){
				max= nums[i];
			}
		}
		
		System.out.println("数组中元素的最大值:"+max);

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪VS恒哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值