首页 > 编程语言 >05 Java数组

05 Java数组

时间:2025-01-13 23:13:55浏览次数:1  
标签:初始化 Java 05 int 元素 数组 new

数组概论

  1. 数组是相同类型数据的有序集合。
  2. 它由相同类型的若干数据按一定先后次序排列组合而成。
  3. 其中每个数据叫数组元素,可通过下标来访问这些元素。

数组声明创建

  1. 要使用数组,得先声明数组变量,有两种语法:

    dataType[] arrayRefVar;	// 首选的方法
    或
    dataType arrayRefVar[];	// 效果相同,但不是首选方法
    
  2. Java 用new操作符创建数组,语法如下:

    dataType[] arrayRefVar = new dataType[arraySize];
    
  3. 数组元素通过索引访问,索引从 0 开始。

  4. 获取数组长度用:arrays.length


三种初始化

  • 静态初始化
// 创建 + 赋值
int[] a = {1,2,3};
Man[] mans = {new Man(1,1),new Man(2,2)};
  • 动态初始化
// 声明 + 初始化 + 赋值
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
  • 数组默认初始化

数组是引用类型,其元素如同类的实例变量,因此数组一经分配空间,其每个元素会像实例变量那样被隐式初始化(即数组创建后会默认初始化值)。


数组的四个基本特点

  1. 数组长度确定,创建后大小不可变。
  2. 元素必须是相同类型,不能混合。
  3. 元素可为任何数据类型,包括基本类型和引用类型。
  4. 数组变量是引用类型,数组可看成对象,元素相当于对象成员变量,数组本身是对象,在 Java 中对象在堆中,所以数组无论存什么类型,数组对象本身都在堆中。

数组边界

  • 下标的合法区间:[0, length-1],如果越界就会报错。ArrayIndexOutOfBoundsException

数组使用

  • For-Each 循环
  • 数组作方法入参
  • 数组作返回值

多维数组

多维数组可以看成是数组的数组,比如二维数组就是特殊的一维数组,其每个元素都是一维数组。

int[][] a = new int[2][5];  // 两行五列的数组
a[1][0];
int[][] array = {{1,2},{3,4},{5,6}}

Arrays 类

  1. 数组的工具类是java.util.Arrays
  2. 数组对象本身没太多可调用方法,API 提供Arrays工具类供基本操作。
  3. 查看 JDK 帮助文档。
  4. Arrays类方法是static修饰的静态方法,使用时直接用类名调用,不用对象调用。
  5. 常用功能:
    • fill方法给数组赋值。
    • sort方法对数组升序排序。
    • equals方法比较数组元素值是否相等。
    • binarySearch方法对排序好的数组进行二分查找。

稀疏数组

  1. 当数组大部分元素为 0 或同一值时,可用稀疏数组保存。
  2. 稀疏数组处理方式:
    • 记录数组的行数、列数及不同值的个数。
    • 将不同值的元素及其行列和值记录在小规模数组中,以缩小程序规模。
  3. 如下图,左边是原始数组,右边是稀疏数组。


标签:初始化,Java,05,int,元素,数组,new
From: https://www.cnblogs.com/you-ni/p/18669584

相关文章

  • Java流程控制
    用户交互Scannerimportjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){System.out.println("Helloworld!");//从键盘接收数据Scannerscanner=newScanner(System.in);//判断用户有......
  • Java方法
    java只有值传递方法的重载命令行传参有时候希望运行一个程序的时候再传递给他消息,这就要靠传递命令行参数给main()函数实现。publicclassDemo01{publicstaticvoidmain(String[]args){for(inti=0;i<args.length;i++){System.out.......
  • Java程序基础⑦Java继承和多态
    目录1.继承1.1引入继承1.2继承的概念和语法1.3父类成员访问1.4super关键字1.5 子类构造方法1.6继承时的初始化1.7 继承的方式1.8final关键字2.多态2.1多态的概念2.2多态的实现条件2.3重写2.4向上转型和向下转型2.4.1向上转型2.4.2向下转型2.5......
  • python bs4 selenium 查找a href=javascript:();的实际点击事件和url
    在使用BeautifulSoup和Selenium时,处理href="javascript:;"的链接需要一些额外的步骤,因为这些链接不直接指向一个URL,而是通过JavaScript代码来执行某些操作。这可能包括导航到另一个页面、触发模态窗口、显示/隐藏内容等。以下是如何使用Selenium来查找和处理这......
  • LeetCode:215.数组中的第K个最大元素
    LeetCode:215.数组中的第K个最大元素解题思路看到“第K个最大元素”。考虑选择使用最小堆。解题步骤构建一个最小堆,并依次把数组的值插入堆中。当堆的容量超过K,就删除堆顶。插入结束后,堆顶就是第K个最大元素。leetcode在线运行测试可能是用本地环境跑分...有缓存卡大数有er......
  • java第二章数组学习
    java第二章数组数组的概念和特点数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。特点数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。创建数组对象会在内存中开......
  • leetcode刷题记录(java)——参考代码随想录:数组 链表 哈希表
    四、题目之:代码随想录https://programmercarl.com/(1)代码随想录:数组704.二分查找classSolution{publicintsearch(int[]nums,inttarget){if(target<nums[0]||target>nums[nums.length-1]){return-1;}intleft=0......
  • JAVA SE 方法的使用
    ......
  • 《Java核心技术II》网络使用telnet
    使用telnettelnet是一种用于网络编程的非常强大的调试工具,可以在命令shell中输入telnet来启动它。注释:在Windows中需要激活它,控制面板->程序->打开/关闭Windows特性->Telnet客户端。连接当日时间服务连接到当日时间服务,由美国国家标准与技术研究所运维,提......
  • 高级java每日一道面试题-2025年01月12日-框架篇[Mybatis]-什么是MyBatis?
    如果有遗漏,评论区告诉我进行补充面试官:什么是MyBatis?我回答:在Java高级面试中,MyBatis是一个常见的讨论话题。以下是对MyBatis的详细解释:一、MyBatis简介MyBatis是一个开源的持久层框架,它提供了将SQL语句和Java对象进行映射的功能。MyBatis简化了JDBC的开发,减少了手......