JAVA基础-数组的使用
一维数组的使用:
package com.atguigu.contact;
/**
*
* @Description 数组是多个相同类型数据按一定顺序排列的集合
* @author YSH
* @version
* @date 2021年2月11日下午2:06:04
*
*/
public class ArrayTest {
public static void main(String[] args) {
//1.一维数组的声明和初始化
int num;//声明
num = 10;//初始化
int id = 1001;//声明+初始化
int[] ids;//声明
//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
// 2.如何调用数组的指定位置的元素:通过角标的方式调用
// 数组的角标(或索引)从0开始的,到数组的长度-1结束。
names[0] = "王铭";
names[1] = "王赫";
names[2] = "张学良";
names[3] = "孙居龙";
names[4] = "王宏志";
//3.如何获取数组的长度。
//属性:length
System.out.println(names.length);
System.out.println(ids.length);
//4.如何遍历数组
for(int i = 0;i < names.length;i++) {
System.out.println(names[i]);
}
//数组元素的默认初始化值
/*
* >数组元素是整型默认值0
* >数组元素是浮点型:0.0
* >数组元素是char型:0 或'\u0000'而非'0'
* >数组元素是Boolean型:false
*/
//5.数组元素的默认初始化值
int[] arr = new int[4];
for(int i = 0;i < arr.length;i++) {
System.out.println(arr[i]);
}
short[] arr1 = new short[4];
for(int i = 0;i < arr1.length;i++) {
System.out.println(arr1[i]);
}
boolean[] arr2 = new boolean[4];
for(int i = 0;i < arr2.length;i++) {
System.out.println(arr2[i]);
}
}
}
一维数组练习题:
一、从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
* >成绩>=最高分-10 等级为A
* >成绩>=最高分-20 等级为B
* >成绩>=最高分-30 等级为C
* >其余 等级为D
代码实现:
/*
* 2.从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
* >成绩>=最高分-10 等级为A
* >成绩>=最高分-20 等级为B
* >成绩>=最高分-30 等级为C
* >其余 等级为D
*/
import java.util.Scanner;
public class Arraytest {
public static void main(String[] args) {
System.out.print("请先输入学生人数:");
Scanner scan = new Scanner(System.in);
int count = scan.nextInt();//从键盘获取学生人数以设定数组位数
int[] studentcard = new int[count];//动态声明变量
int max = 0;
//依次获取学生成绩存入数组中
System.out.print("请输入"+ count +"个学生的成绩:");
for(int i = 0;i < studentcard.length;i++) {
studentcard[i] = scan.nextInt();//从键盘获取学生成绩
//获取学生成绩最大值
if(max < studentcard[i]) {
max = studentcard[i];
}
}
System.out.println(max);//输出成绩最大值
//判断学生成绩等级并输出
char level;
for(int i = 0;i < studentcard.length;i++) {
if(studentcard[i] >= max - 10){
level = 'A';
}else if(studentcard[i] >= max - 20) {
level = 'B';
}else if(studentcard[i] >= max - 30) {
level = 'C';
}else {
level = 'D';
}
System.out.println("student" + i + " source is " + studentcard[i] + " grande is " + level);
}
}
}
多维数组的使用:
package com.atguigu.contact;
public class ArrayTest2 {
public static void main(String[] args) {
// 1.二维数组的声明和初始化
// 静态声明
int[][] arr1 = new int[][] { { 1, 2, 3 }, { 2, 4 }, { 4, 5, 6 } };
// 动态声明
String[][] arr2 = new String[3][2];
// 2.如何调用数组的指定位置元素
System.out.println(arr1[0][1]);// 2
System.out.println(arr2[1][1]);// null
// 3.获取数组的长度
System.out.println(arr2.length);// 3
System.out.println(arr2[0].length);// 3
System.out.println(arr2[1].length);// 2
// 4.如何遍历二维数组
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[i].length; j++) {
System.out.print(arr1[i][j] + "");
}
System.out.println();
}
// 5.数组元素的默认初试化值
/*
* 规定:二维数组分为外层数组的元素,内层数组的元素 int[] arr = new int[4][3]; 外层元素:arr[0],arr[1]等
* 内层元素:arr[0][0],arr[1][2]等;
*
* 针对初始化方式一:int[][] arr = new int[3][2]; 外层元素的初始化值为:地址值 内存元素的初始化值为:与一位数组初始化情况相同
*
* 针对于初始化方式二:比如:String[][] arr4 = new String[3][]; 外层元素的初始化值为:null
* 内存元素的初始化值为:不能调用,否则报错
*
*/
int[][] arr = new int[3][2];
System.out.println(arr[0]);// [I@5594a1b5
System.out.println(arr[0][0]);// 0
float[][] arr0 = new float[3][2];
System.out.println(arr0[0]);// 地址值
System.out.println(arr0[0][0]);// 0.0
String[][] arr3 = new String[3][2];
System.out.println(arr3[0]);// 地址值
System.out.println(arr3[0][0]);// null
String[][] arr4 = new String[3][];
System.out.println(arr4[0]);// null
}
}
数组简单问题:
1.写出一维数组初始化的两种方式
//1).静态初始化
int[] arr0 = new int[] {1,2,3};
//2).动态初始化
int[] arr1 = new int[3];
arr1[0] = 100;
//......
2.写出二维数组初始化的两种方式
//1).静态初始化
int[][] arr3 = new int[][] {{1,2,3},{2,3},{3,4,5}};
//2).动态初始化
int[][] arr4 = new int[3][2];
3.如何遍历如下的二维数组
int[][] arr = new int[][] {{1,2,3},{4,5},{6,7,8}};
for(int i = 0;i < arr.length;i++) {
for(int j = 0;j < arr[i].length;j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
4.不同类型的以为数组元素的默认初始化值
int:0;float:0.0;String:null;boolean:false;
数组练习题:
public class ArrayTest3 {
public static void main(String[] args) {
//获取arr数组中所有元素的和
//初始化二维数组
int[][] arr = new int[][] {{3,5,8},{12,9},{7,0,6,4}};
int sum = 0;
for(int i = 0;i < arr.length;i++) {
for(int j = 0;j < arr[i].length;j++) {
sum += arr[i][j];
}
}
System.out.println("arr数组所有元素和为 " + sum);
}
}