一维数组的说明
public class arraytest {
public static void main(String[] arg){
//1、一维数组的声明和初始化
//1.1、静态初始化:数组的初始化和数组元素的赋值操作同时进行
int[] ids;
ids = new int []{1001,1002,1003,1004};
//1.2、动态初始化
String[] names = new String[5];
//2、如何调用数组中指定位置的元素
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]);
}
//5、数组元素默认初始化值
//double \ short \ int \ byte \ long \ float 都是0
int[] int1 = new int[3];
for(int i = 0 ; i < int1.length ; i++){
System.out.println(int1[i]);
}
//String 是 null
String[] str = new String[3];
for(int i = 0 ; i < str.length ; i++){
System.out.println(str[i]);
}
//char 是 ASCII是 0 或者说是"/u000"
char[] ch = new char[3];
for(int i = 0 ; i < ch.length ; i++){
System.out.println(ch[i]);
}
//boolean初始化是 false
boolean[] bo = new boolean[3];
System.out.println(bo[0]);
}
}
一维数组内存解析
内存的简化结构


一维数组练习
package com.atguigu.exer1;
import java.util.Scanner;
/*
* 2. 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
*
*/
public class exer1 {
public static void main(String[] arg){
String[] names = new String[]{"小明","大明","唐三","小舞","荣荣"};
int[] scores = new int[5];
Scanner scan = new Scanner(System.in);
for(int i = 0 ; i < scores.length ; i++){
System.out.print("请输入" + names[i] + "的成绩" + ":");
scores[i] = scan.nextInt();
System.out.println();
}
//找出最高分
int max = scores[0] ;
for(int i = 1 ; i < scores.length ; i++ ){
if(scores[i] > max){
max = scores[i];
}
}
//判定等级
for(int i = 0 ; i < names.length ; i++){
if(scores[i] >= max - 10)
System.out.println(names[i] + "的等级为:A");
else if(scores[i] >= max - 20)
System.out.println(names[i] + "的等级为:B");
else if(scores[i] >= max - 30)
System.out.println(names[i] + "的等级为:C");
else
System.out.println(names[i] + "的等级为:D");
}
}
}

二维数组的使用
package com.atguigu.array;
public class arraytest2 {
public static void main(String[] args) {
//1 、 二维数组的初始化和声明
int[] arr4[] = new int[][]{{1,2,3},{4,5,13,2,32,42,1},{7,8,9}};
String[][] arr1 = new String[3][2];
String[][] arr2 = new String[3][];
//2、调用制定位置的值
System.out.println(arr4[0][1]);
//重新分配
//arr4[1] = new int[3];
System.out.println(arr4[1][0]);
//3、获取长度
System.out.println(arr4.length);
System.out.println(arr4[1].length );
//4、遍历
for(int i =0 ; i < arr4.length ; i++){
for(int j = 0 ; j < arr4[i].length ; j++){
System.out.print(arr4[i][j] + " ");
}
System.out.println();
}
//5、元素的初始化
int[][] arr5 = new int[3][2];
String[][] arr6 = new String[3][4];
boolean[][] arr7 = new boolean[4][2];
System.out.println(arr5);//[[I@15db9742
//外层元素
System.out.println(arr5[0]);//[I@6d06d69c
System.out.println(arr6[0]);
System.out.println(arr7[0]);
//内层元素
System.out.println(arr5[0][0]);
System.out.println(arr6[0][0]);
System.out.println(arr7[0][0]);
}
}
内存解析

Arrays工具类的使用
package com.aguigu.array;
import java.util.Arrays;
//arrays工具类的使用
public class array1 {
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{2,4,1,3};
// 1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
boolean flag = Arrays.equals(arr1, arr2);
System.out.println(flag);
// 2.String toString(int[] a):输出数组信息。
System.out.println(Arrays.toString(arr1));
// 3.void fill(int[] a,int val):将指定值填充到数组之中。
Arrays.fill(arr1, 3);
System.out.println(Arrays.toString(arr1));
// 4.void sort(int[] a):对数组进行排序。
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
// 5.int binarySearch(int[] a,int key)
int num = Arrays.binarySearch(arr2, 3);
System.out.println(num);
}
}
数组异常
package com.aguigu.array;
/*
* 数组中的常见异常:
* 1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
*
* 2. 空指针异常:NullPointerException
*
*/
public class ArrayExceptionTest {
public static void main(String[] args) {
//1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
int[] arr = new int[]{1,2,3,4,5};
// for(int i = 0;i <= arr.length;i++){
// System.out.println(arr[i]);
// }
// System.out.println(arr[-2]);
// System.out.println("hello");
//2.2. 空指针异常:NullPointerException
//情况一:
// int[] arr1 = new int[]{1,2,3};
// arr1 = null;
// System.out.println(arr1[0]);
//情况二:
// int[][] arr2 = new int[4][];
// System.out.println(arr2[0][0]);
//情况三:
String[] arr3 = new String[]{"AA","BB","CC"};
arr3[0] = null;
System.out.println(arr3[0].toString());
}
}
1960

被折叠的 条评论
为什么被折叠?



