【Java】数组

Unity集成抖音小游戏:从IL2CPP配置到SDK接入全流程解析 本文详细解析了使用Unity开发抖音小游戏的完整流程。从关键的IL2CPP编译后端配置、PlayerSettings设置,到StarkSDK的接入与资源优化(如AutoStreaming),再到激励视频广告、录屏分享等核心功能的代码实现,提供了从环境准备到打包上传的全方位实战指南,帮助开发者高效完成技术适配。 阅读详情

数组

一、数组的定义

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

二、数组的声明与创建

  • 首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法
dataType[] arrayRefVar;   //首选的方法
dataType arrayRefVar[];   //效果相同,担不是首选方法
  • Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arraySize];
  • 数组的元素是通过索引访问的,数组索引从0开始

  • 获取数组长度

arrays.length
  • toSrting方法可以直接遍历数组元素
System.out.println(Arrays.toString());
  • 数组元素的默认初始化值
    数组元素是整型:0
    数组元素是浮点型:0.0
    数组元素是char型:0或’\u0000’,而非’0’
    数组元素是boolean型:false
    数组元素是引用数据类型:null

三、内存分析

  • Java内存分析:

在这里插入图片描述

四、三种初始化

  • 静态初始化

    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;
    
  • 数组的默认初始化

    • 数组是引用类型,它的元素相当于类的实际变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

五、数组的四个基本特点

  • 长度是确定的,一旦被创建,它的大小就是不可以改变的
  • 其元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

六、数组边界

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

    public static void main(String[] args){
        int[] a = new int[2];
        System.out.println(a[2]);
    }
    
  • ArrayIndexOutOfBoundsException:数组下标越界异常

  • 小结:

    • 数组是相同数据类型(数据类型可以为任意类型)的有序集合
    • 数组也是对象。数组元素相当于对象的成员变量
    • 数组长度是确定的,不可变的,如果越界,则报错:ArrayIndexOutOfBoundsException

七、数组的使用

  • For-each循环

    public class Demo03 {
        public static void main(String[] args) {
            int[] arrays = {1,2,3,4,5};
            for(int x : arrays){
                System.out.println(x);
            }
        }
    }
    
  • 数组作为方法入参

    public class Demo04 {
        public static void main(String[] args) {
            int[] arrays = {1,2,3,4,5};
    
            printArray(arrays);
        }
    
    
    
        public static void printArray(int[] arrays){
            for (int array : arrays) {
                System.out.println(array);
            }
        }
    }
    
  • 数组作为返回值

      //反转数组
        public static int[] reverse(int[] arrays){
            int[] result = new int[arrays.length];
            for (int i = 0; i < arrays.length; i++) {
                result[i] = arrays[arrays.length-1-i];
            }
            return result;
        }
    

八、多维数组

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

  • 二位数组

    int a[][] = new int[2][3];
    
  • 解析:以上二维数组a可以看成一个两行三列的数组

九、Arrays类

  • 数组的工具类java.util.Arrays
  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供类一个工具类Arrays供我们使用,从而可以堆数据对象进行一些基本的操作
  • 查看JDK帮助文档
  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)
  • 具有以下常用功能
    • 给数组赋值:通过fill方法
    • 对数组排序:通过sort方法,按升序
    • 比较数组:通过equals 方法比较数组中元素值是否相等
    • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作

十、稀疏数组

  • 需求:编写五子棋游戏中,有存盘退出和续上盘的功能

  • 分析问题:因为该二位数组的很多默认值是0,因此记录类许多没有意义的数据

  • 解决:稀疏数组

  • 党一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组

  • 稀疏数组的处理方式是:

    • 记录数组一共有几行几列,有多少个不同值
    • 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
    package com.yushaoyi.Array;
    
    /**
     * @author ZhuYuchen
     * @create 2020-09-13-20:27
     * @site https://www.cnblogs.com/yushaoyi/
     */
    public class Demo08 {
        public static void main(String[] args) {
            //创建一个二位数组
            int[][] array1 = new int[11][11];
            array1[1][2] = 1;
            array1[2][3] = 2;
            //输出原始的数组
            System.out.println("输出原始的数组");
             for(int[] ints :array1){
                 for(int anint : ints){
                     System.out.print(anint+"\t");
                 }
                 System.out.println();
             }
             //转换为稀疏数组保存
            //获取有效值的个数
            int sum = 0;
            for (int i = 0; i < 11; i++) {
                for (int j = 0; j < 11; j++) {
                    if(array1[i][j]!=0){
                        sum++;
                    }
                }
            }
            System.out.println(sum);
    
            //创建一个稀疏数组的数组
            int [][]array2 = new int[sum+1][3];
            array2[0][0] = 11;
            array2[0][1] = 11;
            array2[0][2] = sum;
            //遍历二位数组,将非零的值存放到稀疏数组中
            int count = 0;
            for (int i = 0; i < array1.length; i++) {
                for (int j = 0; j < array1[i].length; j++) {
                    if (array1[i][j]!=0){
                        count++;
                        array2[count][0]=i;
                        array2[count][1]=j;
                        array2[count][2]=array1[i][j];
                    }
                }
            }
            //输出稀疏数组
            for (int i = 0; i < array2.length; i++) {
                System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t");
            }
            
    
        }
    }
    
第三篇:AMD 和 Intel 它像“乐高积木”一样,可以通过标准化的接口与其他部分组合,构建复杂系统。理解组件后,你会发现从操作系统到微服务,现代软件本质上都是组件的组合! 阅读详情

相关推荐

数字经济新质生产力数字化转型数据要素流通交易解决方案:数据要素化演进路径与管理、公共数据授权运营平台体系、数据底座、典型应用场景

数字经济的发展依赖于数据要素的有效流通与交易,数字化转型的核心在于数据的全生命周期管理和价值释放。数据要素化通过数据资源化、资产化和资本化的“三化”过程,实现其经济与社会价值。数据管理涵盖采集、存储、加工、分析等环节,支持数据的度量与交换。公共数据、企业数据和个人数据通过场内、场外及二级市场交易实现资本化。公共数据开发利用面临隐私泄露、监督管理难等痛点,目标是构建授权运营平台体系,确保数据流通的安全与效率。平台体系包括统一门户、授权管理、运营管理、合规监督等核心功能,支持明文、密文和可信交换流通方式。数据底

weixin_44094929的博客 1002

【Java数组】数组反转

数组反转 private static int[] reverseArr(int[] intArr) { int[] newArr = new int[intArr.length]; for (int i = 0; i < intArr.length; i++) { // 反转后数组的第一个元素等于源数组的最后一个元素 ...

Smilence的博客 354

UE5.6使用ndisplay,单窗口多画面(单机部署),配置、打包流程,无需switchboard

摘要:本文介绍了在UE5.6中使用ndisplay插件的完整流程。首先需要开启ndisplay和launch插件,创建ndisplay配置文件并设置本地单窗口多画面模式。随后通过Process Explorer获取启动命令用于制作bat文件。打包项目时需删除场景中的ndisplay文件,但保留内容浏览器中的配置,并设置为开发版打包。最后将ndisplay文件导出为.ndisplay格式,与bat文件一起放置在打包目录下,通过bat启动程序。注意修改路径和窗口大小时需保持纯英文路径,且bat代码需保持单行格式

weixin_43912248的博客 977

Java基础(数组)反转数组

public static int[] reverse(int[] array) { int[] result = new int[array.length];//创建一个新数组于原数组类型长度相同 for (int i = 0, j = result.length - 1; i < array.length; i++, j--) {//将两个数组元素首尾交换 result[j] = array[i]; } ...

asd623444055的博客 334

CSP-J/S复赛文件组织与freopen读写全攻略,避免爆零

在信息学竞赛的上机考试中,代码能力固然重要,但文件组织与输入输出重定向往往是决定成败的关键细节。许多选手习惯在线评测环境,对本地文件命名、目录层级和读写方式缺乏系统认知,导致算法正确却因文件名拼写错误或freopen使用不当而遗憾失分。理解评测系统的工作原理,掌握从建立准考证号目录到规范命名源文件,再到使用freopen进行文件流重定向的标准流程,是每位参赛者的必备技能。这种工程化习惯不仅适用于CSP-J/S复赛,也是未来参加NOI等更高水平竞赛的基础。本文从文件组织的底层逻辑出发,结合实战案例,系统讲解考

weixin_32466193的博客 592

从SC7A20数据手册到代码:一步步搞定加速度值读取与换算(避坑指南)

本文详细解析了SC7A20三轴加速度传感器的数据手册,从寄存器配置到原始数据读取,再到加速度值的换算方法。通过代码示例和避坑指南,帮助开发者准确实现加速度值的读取与换算,适用于嵌入式开发和运动检测应用。

weixin_26878995的博客 586

Day05-Java基础阶段_数组

Day05-Java基础阶段_数组数组的定义数组声明创建内存分析三种初始化数组的四个基本特点数组边界数组使用多维数组Arrays类冒泡排序稀疏数组 数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们 数组声明创建 首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法 dataType[] arrayRefVar; //首选的方法 dataType a

m0_46254546的博客 205

Java 开发打飞机小游戏(附完整源码)

上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy {

一只独孤的程序猿 1万+

Java数组

一. Java数组01 1.数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。 二.Java数组02 1.数组的声明与创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: ``··dataType[] arrayRefVar;//首选的方法 或 dataType arrayRefVar[];//效果相同,但不是首选方法 Java语言使用

qq_63762763的博客 4万+

GD32F103RCT6/GD32F303RCT6(6.2)USART串口实战:从寄存器配置到DMA高效传输

本文详细介绍了GD32F103RCT6和GD32F303RCT6的USART串口通信实战,从寄存器配置到DMA高效传输的全过程。通过具体的代码示例和优化建议,帮助开发者快速掌握串口通信的关键技术,提升嵌入式开发效率。特别强调了DMA在高速数据传输中的优势和应用技巧。

weixin_33725239的博客 308

OpenCASCADE完整教程专栏完整目录

OpenCASCADE完整教程专栏完整目录

希望我的博客,能帮上你解决学习中工作中所遇到的问题 9698

int数组java,java定义int数组

java int 动态数组,java对象数组详解,javaint数组,java定义int数组java 动态int数组,java对象数组详解,javaint数组,java定义int数组二维数组、多维数组 数据的有点 不使用数组定义 100 个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,......Java ...

weixin_29006701的博客 4546

VMware使用Windows、WinXP等虚拟机上不了网的解决办法(管用)

这个情况一般出现在可以插网线的电脑上,比如台式机和有网线插口的笔记本。需要转换器才能插网线的笔记本一般不会出现这种情况. 查看主机的IP地址和虚拟机的IP地址是否在同一网段,如果在的话,虚拟机就能上网了!!(备注:虚拟机中的IP地址一定要和主机中的用来上网的那个连接的IP地址相同哦)。

爱吃雪糕的小布丁的博客 1万+

java数组元素_Java数组

数组是编程语言中最常见的一种数据结构,不同语言对数组的实现及处理也不尽相同。那么Java中的数组又是怎样的呢?我们该如何定义和使用数组呢?所以,下面让我们一起来学习数组的相关知识。一、数组的分类在Java中,数组就是一个变量,用于将相同数据类型的数据存储在内存中。其中,一个数据被称为数组元素。Java数组是引用数据类型,其分类为:(1)一维数组:1. 数组创建的格式:DataType[] Arra...

weixin_39633500的博客 1163

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java数组及数组函数

i++){ //按数组的方式操作。public static int getSum(int... numbers){ //可变长形参,int sum =getSum(new int[]{1,2,3,4,5});public static int getSum(int[] a){ //形参接收匿名数组。

m0_60525383的博客 3617

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java处理json数组_用Java处理数组

java8处理数组 If a program needs to work with a number of values of the same data type, you could declare a variable for each number. For example, a program that displays lottery numbers: 如果程序需要使用多个相同数据...

cumao2792的博客 2019

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java的数组

当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数据。记录数组一共有几行几列,有多少个不同值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组// 1. 创建一个二维数组 11*11 0:没有棋子 奇数:黑棋 偶数:白棋// 初始化棋盘System.out.println("打印原棋盘:");System.out.println("打印稀疏数组:");

2301_79431873的博客 1091

java——数组

将array 作为数组传入到printArray()中,展示了数组作为参数进行传值时,传递的是数组地址,方法内部改变了数组元素,则原数组同时会发生变化。通过数组名和括号中的索引值可以引用数组中的某个值,如date[2],就表示引用了date数组中的第3个值 68.一旦数组被建立,数组就具有固定大小,每个数组对象都有一个公有的常量length,用于存储数组大小。元素类型[ ] 数组名 =new 元素类型[ ]{元素0.元素1,元素2,......}第一行:数组元素可以声明对象引用,即对象引用,即对象数组。

qq_62813064的博客 1865

java 数组 画图_Java数组

例子:一个足球队有很多人,认识某个人的时候先是把他看作某某队的队员,然后再利用他们身上的编号去区分队员Java中是建议在类型后面加[]代表是数组int num[]:是C/C++语言风格的画图工具:ProcessOn数组就是一个对象,因为它是new出来的public class Demo3 {public static void main(String[] args) {int[] arrays =...

weixin_32823555的博客 528

java 数组_Java之数组

数组是一组数据的集合,数组中的每个数据称为元素。数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类型),但同一个数组里只能存放类型相同的元素。创建数组的步骤:声明一个数组类型的引用变量,简称为数组变量用new关键字构造数组的实例。new关键字为数组分配内存,并且为数组中的每个元素赋予默认值。初始化,即为数组的每个元素设置合适的初始值。数组变量的声明下面的代码声明了两个引用变量s...

weixin_39805409的博客 172

谈谈Java中数组

1.数组是有序数据 的 集 合 ,数 组 中 的 每 个 元 素 具 有 相 同 的 数 的数据类型数 组 名 和 下 标 来 唯 一 地 确 定 数 组 中 的 元 素 。 数 组 有 一 维 数 组 和二维数组 。 2.Java中的一维数组的定义:(1).   type arrayName[]; //type为数组类型,arrName为数组名;其 中 类 型 (type)可 以

聪明的编译器 2348

java数组可以还原吗,Java数组

Java数组1、数组概述数组是相同类型数据的有序集合2、数组声明创建首先必须声明数组变量,才能在程序中使用数组。dataType[] arrayRefVar;Java语言使用new操作符来dataType[] arrayRefVar = new dataType[arraySize];获取数组长度:array.length3、三种初始化及内存分析堆存放new的对象和类可以被所有的线程共享,不会存放...

weixin_33100393的博客 333

java 如何调用数组_Java中数组的使用

1.声明数组1.1声明一维数组声明一维数组有下列两种格式:数组的元素类型 数组名字[ ];数组的元素类型[ ] 数组名字1.2声明二维数组声明二维数组有下列两种格式:数组的元素类型 数组名字[ ][ ];数组的元素类型[ ] [ ] 数组名字;例如:float boy[ ];char cat[ ][ ];Java数组声明注意以下两点内容:1.数组的元素类型可以是Java中...

weixin_42554042的博客 5138

开发用的到java数组吗_java数组

第1章 数组概述1.1 数组介绍现在假如要统计我们班的学生姓名情况,用前面所学的知识,我们可能需要先声明n多个个变量来分别记住每个学生的姓名,这样做会显得很麻烦,而且容易出错。因此我们可以使用容器进行操作。将所有的数据全部存储到一个容器中,统一操作。因此,这就引出了一个容器的概念。容器概念:容器:是将多个数据存储到一起,每个数据称为该容器的元素。生活中的容器:水杯,衣柜,教室Java从容器的角度衍...

weixin_29423089的博客 598

java中有date数组么_Java 数组

数组概述:1、数组可以看成是多个相同数据类型数据的组合,对这些数据的统一管理。2、数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。3、数组中的元素可以是任何类型,包括基本类型和引用类型。一维数组的声明:1、一维数组的声明方式:type var[]; 或type[] var;例如:int a1[]; int[] a2; double b[]; ...

weixin_29536515的博客 727

java数组更新_java数组

数组无论在哪种编程语言中都算是最重要的数据结构之一,同时不同语言的实现及处理也不尽相同。但凡写过一些程序的人都知道数组的价值及理解数组的重要性,与链表一道,数组成为了基本的数据结构。尽管Java提供了很棒的集合API和集合类如:ArrayList、HashMap,他们内部都是基于数组。如果你是来自于基于c或c++背景的程序员,那么你会发现一些关于数组的行为和如何在Java工作中的异同。最值得注意的...

weixin_34642354的博客 976
上一篇: 【Java】方法
下一篇: 【Java】面向对象
Sancean
博客等级 码龄6年 2472粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值