数组

数组[难点-引用数据类型<堆>]

透底[学习路线>数据如何存储]:

  • 变量
  • 数组
  • 类和对象
  • 对象数组
  • 集合 List Set Map…
  • IO流 文件操作
  • XML文件(解析比较麻烦)
  • 数据库(Database)
    • **RDB:**MySQL、Oracle、PostgreSQL、SQLlite…
    • **NoSQL:**Redis、MongoDB、Memcached…
  • 数据库的集群
  • 数据库水平拆分、垂直拆分
  • HBase…大数据 存储

变量的数据类型

**基本数据类型:**byte short int long float double char boolean

`int age = 10;`

引用数据类型: 数组、类(String是类的一种)、接口、枚举…

1. 理解数组的作用

需求:计算一个班级的30名学生的平均成绩。

// 使用变量分别存储各个学生的成绩
double score1 = 10;
double score2 = 20;
double score3 = 30;
......
double score30 = 100;

// 求和
double sum = score1 + score2 +....+score30;
// 求平均分
double avg = sum / 30;
// 使用循环
Scanner input = new Scanner(System.in);
double sum = 0;
for(int i = 1; i <= 30; i++){
    syso("请输入第"+i+"名学生的成绩:");
    double score = input.nextDouble();
	sum += score;
}

// 计算平均分
double avg = sum / 30;

**发现的问题:**变量在使用时它只能使用基本数据类型,存储值只能存储简单的数据/单一的数据。如果想同时存储更多的数据,它无法实现,同样关于变量的操作比较简单,我们需要寻找一种能够同时存储更多数据的,并且操作更加丰富的数据类型。

2. 掌握数组的定义

**数组:**一组数据、数据的组合。

有限个相同类型的变量的集合,就被称为是数组。

数组中的变量被称为是数组的分量或元素

它是一种引用数据类型,它的数据是存储在JVM中的中的。 基本数据类型一般都是存储在中。

3. 掌握数组的基本使用

变量:

  • 数据类型
  • 变量名
  • 变量值

数据类型 变量名;

变量名 = 变量值;

数据类型 变量名 = 变量值;

数组:

  • 数据类型 :还是那些基本数据类型

  • 数组名(变量名):和普通变量名规范相同

  • 数组的长度(存储了多少个变量) 一个数组定义了长度就无法更改

  • 数组的元素(多个变量) 数组元素不赋值也有默认值

    byte short int long :0

    float double:0.0

    boolean:false

    char:\U0000 一个空格

    String等引用数据类型默认值为:null (表示没有引用)

  • 数组的下标(索引)

获取数组中的所有数据:(遍历)

4. 掌握数组的常用操作

4.1 求一个班的成绩总和与平均分

4.2 求最大/小值

**需求:**使用键盘录入输入5位学生的成绩,然后计算最高分和最低分。

4.3 通过数组进行排序-插入新值保持顺序

需求:有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序。

4.4 猜数游戏

需求:有一个数列:8,4,2,1,23,344,12
循环输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 
// 存储数列的数据
int[] nums = {8,4,2,1,23,344,12};
// 1.循环输出数列的所有值
for(int num : nums) {
    System.out.print(num+" ");
}
System.out.println("\n-----------------------");
// 2.求数列中所有数值的和
int sum = 0;
for(int num : nums) {
    // 累加求和
    sum += num;
}
System.out.println("数列的和为:"+sum);
System.out.println("----------------------");
// 3.猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数 
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int inputNum = input.nextInt();
// 遍历数组 查看是否有相同的数值
// 设立标记(日后一个比较不错的思路方案)  
// int  /  boolean
boolean flag = false; // 假定不存在此值

for(int num : nums) {
    if(inputNum == num) {
        flag = true; // 更改标记
        break;
    }
}

// 判断标记
if(flag) {
    System.out.println("包含此值!");
}else {
    System.out.println("不包含此值!");
}

5. 作业

5.1 练习1数组中最大值和最小值的差值

获取到数组中最大值和最小值的差值,要求:

定义main方法,方法内完成:

  1. 获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;

  2. 分别获取数组中最大值和最小值,并计算差值;

  3. 输出差值。

5.2 偶数的累加和与元素值为奇数的累加和之差

获取数组中元素值为偶数的累加和与元素值为奇数的累加和,并计算出它们之间的差值,要求:

定义main方法,方法内完成:

  1. 获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;

  2. 分别获取数组中元素的偶数和与奇数和;

  3. 输出偶数和与奇数和的差值

5.3 获取数组中大于指定整数的元素个数

获取指定数组中大于指定整数的元素个数,要求如下:

定义main方法,方法内完成:

  1. 获取键盘录入的5个整数,并存放在int数组arr中,输入前提示输入的是第几个值;

  2. 键盘录入一个需要进行比较的整数num;

  3. 计算数组arr中比整数num大的元素个数

你可能感兴趣的:(数组)