一维数组基本知识的学习以及练习
前言
一维数组基本知识的学习。
一、一维数组
(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 指向同一个数据空间
}
}
}
输出结果为:
- 点赞
- 收藏
- 关注作者
评论(0)