一维数组基本知识的学习以及练习

举报
周小末天天开心 发表于 2022/11/18 23:58:48 2022/11/18
【摘要】 一维数组基本知识的学习以及练习

前言

一维数组基本知识的学习。

一、一维数组

(1)数组介绍

        数组可以进行存放多个同一类型的数据。数组是一种引用数据类型,即数组就是一组数据。

(2)数组的使用

1)动态初始化

方法一:数据类型[ ] 数组名 = new 数据类型[大小]

       如:int[ ] a = new int[5];

方法二:先声明数组: 数据类型 数组名[ ]

       如:int[ ] a;

              再创建数组: 数组名 = new 数据类型[大小]

       如:a = new int[5];

2)静态初始化

方法:数据类型 数组名[ ] = {元素值1,元素值2……}

       如:int a[5] = {1, 2, 3, 4, 5};

3)数组的引用

引用方法:数组名 [下标];

注意:数组的下标是从0开始的,如:a数组第三个数的引用方法为 a[2]

(3)数组的细节

1)数组是多个相同类型数据的组合,实现对这些数据的统一管理

2)数组中的元素可以是任何数据类型,但不能混用

3)数组的下标是从 0 开始

4)数组的下标必须在指定范围内,否则报错

5)数组创建后,如果没有赋值则会有默认值

int 0、shrot 0、byte 0、long 0、float 0.0、double 0.0、String null、boolean false

(4)应用案例

1)创建一个 char 类型的 26 个元素的数组,分别 放置'A'-'Z',使用循环访问所有元素、

public class ArrayExercise01 {
	public static void main(String[] args) {
 
		char[] c = new char[26];
		for(int i = 0; i < c.length; i++) {
			c[i] = (char) ('A' + i);// 'A' + i 是 int型,需要强制类型转换
			System.out.print(c[i] + " ");
		}
 
	}
}

输出结果为:

2)请求出一个数组 int[] 的最大值 {4,-1,9,10,23},并得到对应的下标

public class ArrayExercise02 {
	public static void main(String[] args) {
 
		int[] a = {4 , -1 , 9 , 10 , 23};
		int max = a[0];
		int j = 0;
		for(int i = 1 ; i < a.length ; i++) {
			if(a[i] > max) {
				max = a[i];
				j = i;
			}
		}
		System.out.println("最大值为:" + max);
		System.out.println("最大值的下标为:" + j);
	}
}

思路分析:

1. 定义一个 int 数组 int[] a = {4,-1,9, 10,23};

2. 假定 max = a[0] 是最大值 , j=0;

3. 从下标 1 开始遍历 a, 如果 max < 当前元素,说明 max 不是真正的最大值, 我们就 max = 当前元素; j = 当前元素下标;

4. 当我们遍历这个数组 a 后 , max 就是真正的最大值,j 最大值对应的下标

二、数组赋值机制

1)基本数据类型赋值,这个值就是具体的数据,相互不影响。

如:int n1 = 10; int n2 = n1;

2)数组在默认情况下是引用传递,赋的值是地址。

3)基本数据类型赋值演示:

public class ArrayAssign {
	public static void main(String[] args) {
 
		//基本数据类型赋值,赋值方式为值拷贝
		//n2的变化,不会影响到n1的值
		int n1 = 10;
		int n2 = n1;
 
		n2 = 80;
		System.out.println("n1=" + n1);//10
		System.out.println("n2=" + n2);//80
 
	}
}

输出结果为:

4)引用传递演示:

public class ArrayAssign {
	public static void main(String[] args) {
 
		//数组在默认情况下是引用传递,赋的值是地址,赋值方式称为 引用传递,传递的是一个地址
		int[] arr1 = {1,2,3};
		int[] arr2 = arr1; //把arr1赋给arr2
		//arr2 的值会影响 arr1 的值,所以称为引用传递
		arr2[0] = 10;
		for(int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);  // arr1 和 arr2 指向同一个数据空间
		}
	}
}

输出结果为:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。