数组的使用

这篇博客详细介绍了Java中的数组,包括为何需要数组、数组的定义与使用方式、一维数组的内存原理及注意事项,还探讨了数组的赋值机制、拷贝、反转、添加/扩容、排序的理论及冒泡排序的实现。此外,还讲解了二维数组的概念,提供了二维数组的多种初始化方式,并展示了打印杨辉三角的实例。最后,提到了二维数组的使用细节和注意事项,为读者提供了丰富的实践练习。
摘要由CSDN通过智能技术生成

数组

为什么需要数组

一个养鸡场有6雉鸡,他们的体重是3kg、5kg、3.4kg、11kg、2kg、50kg。

请问这六只鸡的总体重和平均体重

public class Array01 {
   

    public static void main(String[] args) {
   

        //数组的引出
        /*
        一个养鸡场有6雉鸡,他们的体重是3kg、5kg、3.4kg、11kg、2kg、50kg。

        请问这六只鸡的总体重和平均体重

        思路分析
        1、定义6个变量 double
        2、求和 平均值
        3、分析传统实现的方式问题
        4、引出新的技术 -> 数组

         */
        double hen1 = 3;
        double hen2 = 3.4;
        double hen3 = 5;
        double hen4 = 1;
        double hen5 = 2;
        double hen6 = 50;

        double totalWeight = hen1+hen2+hen3+hen4+hen5+hen6;
        double avgWeight = totalWeight / 6;

        System.out.println(totalWeight);
        System.out.println(avgWeight);

        //用数组解决
        //定义一个数组
        // double[] 表示double类型的数组,数组名 hens
        //{3,5,1,3.4,2,50}; 表示数组的值/元素,依次表示数组的第几个元素
        //静态初始化
        double[] hens ={
   3,5,1,3.4,2,50};

        //数组可以通过for循环遍历 得到数组所有元素的和 使用for循环

        //我们可以通过 hens[下标] 来访问数组的元素,
        // 下标是从0开始编号的 比如第一个元素就是hens[0],
        // 第二个元素就是hens[1],以此类推

        //我们取到值之后就可以累积了 通过for循环就可以访问 数组的元素
        //可以通过 数组名.length 得到数组的长度
        double sum = 0;
        double avg = 0;
        for (int i = 0;i < hens.length;i++){
   
            System.out.println("第" + (i+1) + "元素的值=" + hens[i] );
            sum += hens[i];
        }
        avg = sum / hens.length;

        System.out.println("总体重=" + sum
        + "平均体重=" +avg );


    }
}

数组的介绍

数组可以存放多个相同类型的

数组的使用方式

import java.util.Scanner;
public class Array02 {
   

    public static void main(String[] args) {
   

        //演示数据类型[] 数组名 = new 数据类型[大小]

        //创建一个Scanner对象
        Scanner myScanner = new Scanner(System.in);
        //使用方式1 - 动态初始化
//        double scores[] = new double[5];//创建了一个数组 大小为5

        //使用方式2 - 动态初始化
        double scores[];//声明数组 ,这是 scores 是 null
        scores = new  double[5]; //分配内存空间,可以存放数据
        for (int i = 0; i < scores.length; i++) {
   
            System.out.println("请输入成绩");
            scores[i] = myScanner.nextDouble();

        }
        //再次遍历数组
        for (int i = 0; i < scores.length; i++) {
   

            System.out.println("成绩为" + scores[i]);
        }
    }
}

一维数组的内存原理图

在这里插入图片描述

一维数组的注意事项和细节

public class ArrayDetail {
   

    public static void main(String[] args) {
   

        //1.数组是多个相同类型数据的组合,实现对这些数据的统一管理
        int[] arr1 = {
   1,2,3,60};
        double[] arr2 = {
   1.1,2.2,3.3,60.6,100};//int->double

        //2.数组中的元素可以是任何的数据类型,包括基本类型和引用类型,
        // 但是不能混用
        String[] arr3 = {
   "北京","jack","milan"};

        //3.数组创建后,如果没有赋值,有默认值 int 0 short 0 byte 0 long 0 float 0.0 double 0.0
        // char \u0000,boolean false ,String null

        short arr4[] = new  short[3];//arr4---> 3个空间 默认值为0
        for (int i = 0; i < arr4.length ; i++) {
   
            System.out.println("数组4");
            System.out.println(arr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值