数组
数组是为了处理多个相同数据类型的变量,将它们用一个容器装起来,将这个容器定义一个名字,给容器分配一个地址。在程序需要寻找这个容器中的某个元素时,就可以先找到这个容器,再根据索引找到元素,这样可以减少时间的损耗,同时也可以减少存储空间。
数组的常用形式:
数组:是指一组数据的集合
数据太多,就定义一个数组,用于存数据
一维数组:
编写格式:
int arr[] = new int [3];
int arr[] = new int []{1,2,3};
int arr[] = {1,2,3}; //推荐使用
二维数组:
int arr[][] = new int[3][4];
int arr[][] = new int[][]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int arr[][] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //推荐使用
[3] 用于控制有几个一维数组
[4] 用于控制一维数组内的元素个数
数组的代码例子:
public class ArrDemo{
public static void main(String[] args){
System.out.println();
System.out.println("--------一维数组--------------");
//一维数组
ArrDemoOne();
System.out.println();
System.out.println("--------二维数组--------------");
//二维数组;
System.out.println();
ArrDemoTwo();
}
public static void ArrDemoOne(){
int arr1[] = new int[3];
arr1[0] = 1;
arr1[1] = 2;
arr1[2] = 3;
int arr2[] = new int[]{1,2,3};
int arr3[] = {1,2,3};
System.out.println("--------第一类定义------------");
OneBianLi(arr1);
System.out.println("--------第二类定义------------");
OneBianLi(arr2);
System.out.println("--------第三类定义------------");
OneBianLi(arr3);
}
public static void ArrDemoTwo(){
int arr1[][] = new int[4][4];
arr1[0][0] = 1;
arr1[1][1] = 1;
arr1[2][2] = 1;
arr1[3][3] = 1;
int arr2[][] = new int[][]{{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}};
int arr3[][] = {{1,0,0,0,},{0,1,0,0},{0,0,1,0},{0,0,0,1}};
System.out.println("--------第一类定义------------");
TwoBianLi(arr1);
System.out.println("--------第二类定义------------");
TwoBianLi(arr2);
System.out.println("--------第三类定义------------");
TwoBianLi(arr3);
TwoSum(arr1);
}
//一维数组遍历的方法
public static void OneBianLi(int[] arr1){
int c = 0; //用于换行
for(int i=0 ;i < arr1.length;i++){
System.out.print(arr1[i]+"\t");
c++;
if(c%arr1.length ==0){
System.out.println();
}
}
}
//二维数组的遍历方法
public static void TwoBianLi(int[][] arr1){
//遍历数组:
int c = 0; //用于换行
for(int i = 0; i < arr1.length;i++){
for(int j = 0; j <arr1[i].length;j++){
c++;
System.out.print(arr1[i][j]+"\t");
if(c%arr1[i].length ==0){
System.out.println();
}
}
}
}
//二维数组求和
public static void TwoSum(int[][] arr1){
int sum1 = 0;
int sum2 =0;
for(int i = 0; i < arr1.length;i++){
for(int j = 0; j <arr1[i].length;j++){
sum1 += arr1[i][j];
}
System.out.println("sum1= "+sum1);
sum2 += sum1;
sum1 = 0;
}
System.out.println("sum2= "+sum2);
}
}
应用数组的一个实例子:
- 随机点名器:即在全班同学中随机打印出一名同学名字。
要做到随机点名,它具备以下:
1.存储姓名
2.预览所有人的姓名
3.随机出一个人的姓名
import java.util.Random;
public class CallName{
public static void main(String[] args){
//存储姓名,姓名存储到数组中
//数组存储姓名,姓名的数据类型,String
String[] names = {"张三","李四","林冲","宋江","李逵","吴用"};
//遍历数组,
for(String name1 :names){
System.out.println(name1);
}
System.out.println("-------------------");
//随机出一个人的名字
//利用随机数,生成一个整数,作为索引,到数组中个找到对应的元素
Random ran = new Random();
//随机数,范围必须是0-数组的最大索引
int index = ran.nextInt(6);
System.out.println(names[index]);
}
}
思维导图篇
- 第四天的思维导图:
[数组方法的补充]
(https://blog.csdn.net/jiangyi_1612101_03/article/details/81368676)