数组

数组

概念

  1. 一组连续的内存空间
  2. 存储相同数据类型的数据

数组的创建

语法:类型[] 数组名 = new 类型[长度]

image

new:通知虚拟机,需要开辟一块内存空间
指定空间类型
指定空间长度

image

由栈空间进行申明,引用堆当中的内存地址,引用类型。

数组的使用

  1. 设置数据

    image

    数组的最大长度为int-8
    游标越界:无论是存值还是取值

    image

image

通过循环给数组录入数据

image

遍历:依次对元素进行访问

image

foreach遍历

image

image

区别:
foreach语法更加简练,但是只能是从头开始遍历。
而普通的for循环,可以更加灵活的决定遍历的起止位置。

地址传递

  • 引用数据类型的赋值,传递的是内存地址。
  • 否则即便数据看起来一样,只要是new了一个新的地址,那么就是两个不同的东西。
  • 在同一个地址当中,所有的引用,只要有一个修改,其他引用都会修改。

一句话,记住就行:

java中数据的使用,效率最差的就是创建数组。其次是创建对象。再其次是创建基本数据类型变量。最快的
就是赋值/引用。

作业:

  1. 录入若干学生成绩,分别求,最大值,最小值,平均值,总和。
package com.qf.array;

import java.util.Scanner;

public class HomeWork01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入学生数量:");
		int num = scan.nextInt();
		
		double[] scores = new double[num];
		double sum = 0;
		double max = scores[0];
		double min = 100;
		double avg = 0;
		for(int i = 0;i < scores.length;i++) {
			System.out.print("请输入第"+(i+1)+"个学生的成绩:");
			scores[i] = scan.nextDouble();
			sum +=scores[i];
			if(max<scores[i]) {
				max = scores[i];
			}
			if(min>scores[i]) {
				min = scores[i];
			}
		}
		avg = sum/num;
		System.out.println("最高分:"+max+"\r\n最低分:"+min+"\r\n平均分:"+avg+"\r\n总分:"+sum);
	}

}

image

选做:

改造割韭菜系统,将数据(号池,奖票)都存入数组。

posted @ 2023-03-08 18:35  DFshmily  阅读(11)  评论(0编辑  收藏  举报