Java数组笔记整理

数组

一维数组

1.什么是数组?

数组是一个特殊的“变量”,存储相同类型的一组数据。

比如声明一个一个变量就是在内存空间划出一块适合的空间,声明一个数组就是在内存空间划出一串连续的空间。

变量是在内存中临时存储的运行数据

为了能够更复杂的存储数据,我们需要学习数组
在这里插入图片描述

数组和变量在内存中存储的对比效果图:

在这里插入图片描述
数组和变量一样,由四种要素组成

数组的基本要素:

1.标识符

和变量名命名规范一致

2.数组元素

数组中存储的一个个变量.

3.数组下标(索引)数组长度:从0开始(对数组元素进行编号,从0开始,数组中的每个元素都可同过下标来访问)

4.元素类型

数值类型:byte short int long float double

非数值类型:char boolean String
在这里插入图片描述

数组的定义

1.声明数组

告诉计算机数据类型

2.分配空间

告诉计算机分配几个连续的空间,指定空间长度后不可变

a = new int[5];

scores = new int[30];

avgAge = new int[6];

name = new String[30];

int[] xXX = new int[2];
xXX = new int[3];//这个中括号内的长度不是改变长度,而是引用数组内的长度地址 是新的空间

声明数组并分配空间。

在这里插入图片描述

3.赋值(向中括号内存放数据)

在这里插入图片描述
在这里插入图片描述

注意:

数组定义好后,即使不赋值也是由默认值的,类型不同默认值不同。
在这里插入图片描述

数组赋值方式

方法1:边声明边赋值
int[] scores = {89,79,76};
int[] scores = new int []{89,79,76};

不能将这种方法拆分为两条

int[] arr;
arr = {1,2,3,4};   X
从键盘录入信息并赋值

在这里插入图片描述

遍历的含义及使用方式

遍历:将某个内容的所有值元素一个一个全部取出来的过程。

遍历方式1:将循环变量i作为数组的下标值,可以通过此值来获取对应的元素。

// 声明一个int数组并赋值
int[] scores = {10,20,30,40,50};
// 增强for循环
// for(数组类型 变量名 : 要遍历的数组名)
for(int score : scores){
	// score 就是遍历出来的每一个元素
    System.out.println(score);
}

遍历方式2:增强for循环(forreach)将数组中的每一个元素值都存储到临时变量中用来使用

for(数组元素类型 数组元素名:要遍历的数组名)

	// 数组元素名
}
fordouble score :scores){
	score
}

Arrays数组工具类

java.util 包提供的工具类,Arrays类提供操作数组的方法,如:排序、查询。
在这里插入图片描述

冒泡排序

冒泡排序算法的运作如下:(降序)

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应
该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

口诀:外层循环n-1

​ 内层循环n - 1 - i

二维数组

二维数组的含义

二维数组本质上是以数组作为数组元素的数组,即”数组的数组“,类型说明符 数组名[常量表达式] [常量表达式]。
在这里插入图片描述
在这里插入图片描述

二维数组的使用

public class shuZu{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
         // 定义一个二维数组 用来存储3个班的学生成绩 每个班有5名学生
        int[][] scores = new int[3][5];
        // 动态给二维数组赋值
        for(int i = 0;i < scores.length;i ++){
            System.out.println("第"+(i + 1)+"个班");
            for(int j = 0;j < scores[i].length;j ++){
                System.out.println("请输入"+(j+1)+"个学生成绩");
                int score = input.nextInt();// 成绩
                score[i][j] = score;// 存储成绩
            }
        }
        // 使用for循环遍历二维数组
        for(int i = 0;i < scores.length;i ++){
            int sum = 0;// 用来每个班总成绩
            for(int j = 0;j < scores[i].length;j ++){
                sum += scores[i][j];
            }
            System.out.println((i+1)+"班的总成绩为"+sum);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/kY_98/article/details/88819904