当前位置: 首页 > news >正文

Java——数组

一、数组是?

数组就是一个容器,用于存储一批同种类型的数据。

数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型

二、静态初始化数组

(一)定义

即定义数组的时候直接给数组赋值。

(二)格式

1.完整格式

数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3,...};

2.简化格式

数据类型[ ] 数组名 = {元素1,元素2,元素3,...};

3.注意

(三)数组的访问

1. 格式:数组名 [ 索引 ]
public class HelloWorld {
    public static void main(String[] args) {
//        初始化数组
        int [] ages = new int[]{1,2,3,4};
        double [] point = {1.1,2.2,3.3};
//        访问数组的某个值
        System.out.println(ages[0]);
        System.out.println(point[2]);
    }
}
//结果
//1
//3.3
2.重新赋值数组的某个索引代表值 

格式:数组名 [ 索引 ] = 想赋予的值;

public class HelloWorld {
    public static void main(String[] args) {
        int [] ages = new int[]{1,2,3,4};
        double [] point = {1.1,2.2,3.3};
        System.out.println(point[2]);
//        将数组的某个索引的值重新赋值
        point[2]=10.9;
        System.out.println(point[2]);
    }
}
//结果
//3.3
//10.9
3.查看数组的长度

格式:数组名.length

public class HelloWorld {
    public static void main(String[] args) {
        int [] ages = new int[]{1,2,3,4};
//        查看数组的长度
        System.out.println(ages.length);
    }
}
//结果
//4

(四)数组的遍历

1. 利用for循环
public class HelloWorld {
    public static void main(String[] args) {
//        初始化数组
        int [] ages = new int[]{11,12,13,14,15};
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]);
        }
    }
}
//结果
//11
//12
//13
//14
//15

三、动态初始化数组

(一)定义

即在定义数组时先不存入具体的元素值,只确定数组存储的数据类型数组的长度

(二)格式

数据类型 [ ] 数组名 = new 数据类型 [ 长度 ];

赋值:数组名 [ 索引 ] = 值;

public class HelloWorld {
    public static void main(String[] args) {
        int[] ages = new int[3];
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]);
        }
        ages[0]=30;
        ages[1]=40;
        ages[2]=50;
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]);
        }
    }
}
//结果
//0
//0
//0
//30
//40
//50

(三) 动态初始化数组元素默认值规则

public class HelloWorld {
    public static void main(String[] args) {
//        注意char类型的初始值
        char [] a = new char[3];
//        直接输出char的初始值时,输出结果不为0
//        是因为char初始值为0,然后直接输出时会将0转为单字符,
//        但是0没有对应的单字符,所以输出一个符号。
        System.out.println(a[0]);
//        想输出char的初始值0时,可以将其转为整型。
        System.out.println((int)a[0]);
    }
}
//结果
// 
//0

(四)注意

1.在还没赋值给数组的每个索引时,数组都有一个初始值为0.

2.

四、多个变量指向同一个数组

(一)定义

当将一个数组直接赋值给另一个数组时,它们的数据地址是一样的。

(二)展示

public class HelloWorld {
    public static void main(String[] args) {
//        定义一个数组
        int[] arr1 = {100,90,80,70};
//        将arr1数组赋值给arr2
        int[] arr2 =arr1;
//        输出两数组的地址,会发现地址是一样的。
        System.out.println(arr1);
        System.out.println(arr2);
//        改变arr2的某个值
        arr2[1]=200;
//        查看arr1的索引为1的值,会发现改变arr2的值,arr1的值也会改变
        System.out.println(arr1[1]);
    }
}
//结果
//[I@76fb509a
//[I@76fb509a
//200

(三)注意

如果某个数组变量存储的地址是null,那么该变量将不再指向任何数组对象

public class HelloWorld {
    public static void main(String[] args) {
        int[] arr1 = {100,90,80,70};
        int[] arr2 =arr1;
//        把null赋值给arr2,代表arr2数组的地址为null
        arr2 = null;
//        直接输出arr2,可以得到arr2的地址为null
        System.out.println(arr2);
//        查看arr2的某个值和查看arr2的长度,都会报错
//        System.out.println(arr2[0]);
//        System.out.println(arr2.length);
    }
}
//结果
//null
//NullPointerException(报错)
//NullPointerException(报错)
http://www.dtcms.com/a/99165.html

相关文章:

  • RSA 简介及 C# 和 js 实现【加密知多少系列_4】
  • .NET开发基础知识11-20
  • Lavazza拉瓦萨亮相上海樱花节,增色海派咖啡风情
  • rbpf虚拟机-汇编和反汇编器
  • OpenCV、YOLO与大模型的区别与关系
  • Web开发:数据的加密和解密
  • Python之函数
  • 图片RGBA像素值提取工具v1.0.0发布
  • 【原理系列】计算机组成原理-第一遍阅读总结
  • Flutter_学习记录_AppBar中取消leading的占位展示
  • Python:日志模块操作及基本配置,日志格式化输出
  • Mybatis源码 插件机制
  • Vue3 项目通过 docxtemplater 插件动态渲染 .docx 文档(带图片)预览,并导出
  • 人工智能与软件工程结合的发展趋势
  • 一些常用开发软件下载地址
  • [Python]如何利用Flask搭建一個Web服務器,並透過Ngrok訪問來實現LINE Bot功能?
  • MySQL数据库的操作(mybatis)
  • Spring学习笔记06——bean、java bean、spring bean、POJO几个概念讲解
  • 算法刷题记录——LeetCode篇(1.2) [第11~20题](持续更新)
  • Labview学习记录
  • 杂草YOLO系列数据集4000张
  • 【MySQL基础-16】MySQL DELETE语句:深入理解与应用实践
  • Ray AI - 概述、安装、入门
  • 【HTML 基础教程】HTML <head>
  • Java多线程与高并发专题——Condition 和 wait/notify的关系
  • python:模块
  • app整改报告怎么写?app整改方案分享
  • 液压式精密矫平机——精准掌控,重塑金属平整新高度
  • 【黑马点评】Redis解决集群的session共享问题
  • wait函数等待多个子进程