谈谈Java中数组

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
1.数组是有序数据 的 集 合 ,数 组 中 的 每 个 元 素 具 有 相 同 的 数 的数据类型
数 组 名 和 下 标 来 唯 一 地 确 定 数 组 中 的 元 素 。 数 组 有 一 维 数 组 和二维数组 。
 
2.Java中的一维数组的定义:
(1).   type arrayName[]; //type为数组类型,arrName为数组名;
其 中 类 型 (type)可 以 为 Java中 任 意 的 数 据 类 型 ,包 括 简 单 类 型 和组 合 类 型
(2).    type [] arrayName;
我个人比较喜欢后面一种,因为它有数组是一种对象的意思
 
3.为数组分配内存
上面的例子中没有为数组分配内存,分配内存的格式如下:
arrayName = new type[arraySize]; 
当然也可以定义和分配内存一起进行的;
type [] arrayName=new type[arraySize];
 
4.数组的引用:
引用数组中的莫个元素;
arrayName[index];
index为 数 组 下 标 ,它 可 以 为 整 型 常 数 或 表 达 式
 
5.多维数组
与 C、 C++一 样 ,Java中 多 维 数 组 被 看 作 数 组 的 数 组 。 例 如 二维数组组 为 一 个 特 殊 的 一 维数 组 ,其 每 个 元 素 又 是 一 个 一 维 数 组;
我们以二维数组为例说明Java的多维数组:
定义:
type arrayName [][];
或者type[][] arrayName;
 
分配内存的方式:
(1).arrayName=new type[size1][size2];
(2).Java可以对二维数组的分配时列数可以不同
arrayName=new type[size1][];  //此行分配了行数
arrayName[0]=new type[size2];
..............
arrayName[size-1]=new type[sizen];
 
二维数组的引用:
引 用 方 式 为 :arrayName[index1][index2]
其 中 index1、 index2为 下 标 ,可 为 整 型 常 数 或 表 达 式
 
初始化:
(1).直 接 对 每 个 元 素 进 行 赋 值 。
(2). 在 定 义 数 组 的 同 时 进 行 初 始 化 。
如 :int a[][]={{2,3},{1,5},{3,4}};
定 义 了 一 个 3× 2的 数 组 ,并 对 每 个 元 素 赋 值
 
 
 
6.关于Java数组与C++数组的一些比较
(1).相对于C++中的数组,Java中的数组已经有了很大的改进。首先,Java中的数组是对象,这就意味着与C++中的数组的根本不同,相反,Java中的数组与C++中的STL或Java中的容器类反而更相像一些(只是作为对象,它的方法要比STL中的容器类或者Collection类少很多)。另外,Java中有支持数组的一套算法,就像STL中的Algorithm与Java中的Collections类中的静态方法一样。当然,严格的说,这些算法也许并不是STL和Collections类所强调的通用算法;但是它们是包含在标准库中的高效的算法,对于程序员来说,这些算法可以不加修改的作用于各种不同类型的数组,也算是某种程度上的通用算法了。
(2)讨论一下Java中数组作为对象的好处:
.越界检查
. length field:与传统的C++中的数组相比,length字段可以方便的得到数组的大小;但要注意,仅仅可以得到数组的大小,不能得到数组中实际包含多少个元素,因为length 只会告诉我们最多可将多少元素置入那个数组。
. 初始化:对象数组在创建之初会自动初始化成null,由原始数据类型构成的数组会自动初始化成零(针对数值类型),(Char)0 (针对字符类型)或者false (针对布尔类型)。 
. 数组作为返回值:首先,既然数组是对象,那么就可以把这个对象作为返回值;而且,不必担心那个数组的是否可用只要需要它就会自动存在而且垃圾收集器会在我们完成后自动将其清除
java数组编译后_java 数组详解 数组概念:数组是一个定长的容器,数组中存储的数据类型需要是一致的数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。数组的四种定义方式:数据类型是数组中元素的数据类型数组是有默认值的{0,0,0,0,0,0,0,0,0,0,}int数据类型是数组中元素的数据类型数组的数据类型是 int[]元素 --> 数组中储存的值数组的长度 --> 数组中的元素个数//数据类型[] 数... 阅读详情

相关推荐

Java基础知识——数组

1、一维数组 2、二维数组 3、数组排序

qq_65573436的博客 918

java定义数组的三种类型

三种定义数组的格式如下:int[] arr1=new int[10]; int[] arr2={1,2,3,6}; int[] arr3=new int[]{1,2,3,4,5,6,7,22}; 注意:数组的length是一个属性,而字符串的length()是一个方法了!!!虽然都是求的他们各自的长度package array; public class Array { publi

瓜爪牛的博客 3万+

Java数组学习心得,欢迎拍砖

我以前对C++比较熟悉,所以就想当然将C++中的数组Java中的数组画上了等号。读过《TIJ》之后我发现并不是这么回事,所以,完全应该重新认识Java中的数组。这篇文章不是对Java数组的全面介绍,只是我的一些心得。(有些内容转引自《TIJ》)概论:相对于C++中的数组Java中的数组已经有了很大的改进。首先,Java中的数组是对象,这就意味着与C++中的数组的根本不同,相反,Java

jjjer的专栏 2971

java数组编译后_java数组

数组的描述数组是编程语言中最常见的一种数据结构,可以存储多个相同类型的数据,每个数组元素可以存放一个数据。通常使用数组元素的索引来操作数组元素。数组的元素索引从0开始。数组初始化完成之后,数组在内存中占用的空间将被固定下来,数组的长度也被固定,即使把一个数组里的元素全部清空,数组所占的空间依然被保留。java中的数组既可以存放基本类型的数据,也可以存放引用类型的数据。数组本身也是一种引用类型。定义...

weixin_29056701的博客 203

谈谈java 数组

之所以写一篇专门的文章来说明这个java中的数组,是因为我对此并不熟悉,所以我要系统的来梳理下我所学到的,并在此基础上进行深入一点的研究.好吧,闲话少说!首先还是从最基础的讲起.1,定义:  String这个类最常用不过了,基本上你写的每个类都有它的身影.但是我们看它的源代码就知道其实这个类只是基于char[]  的操作的封装而已.之所以说这个我是想说数组对于java很好很重要.  从很多书上都讲

1237

谈谈JAVA数组数组是对象吗?)

三.java数组到底是什么? 1)不管在其他语言中是什么,数组Java中可得看作一个对象,它有一些值得探讨的特性。 Java中的数组其实是一个对象,但是确实是一个特殊的对象,实在是太特殊了,以致我们都不好把它多做对象处理。 java是纯面向对象的语言,数组也是一个对象。 首先我们看一下表面现象,数组创建的时候采用的是如下语句: MyClass[] arr = new

QQ1130141391的专栏 1万+

简单谈谈 java数组

数组是一种基本的数据结构,用于在计算机内存中存储多个相同类型的数据。数组中的每个元素都有一个唯一的索引,用于标识和访问该元素。需要注意的是,数组在创建时会为每个元素分配默认值。对于基本数据类型,这个默认值通常为0(对于浮点数是0.0,布尔类型是false)。举个简单的例子,假设你想在一个学校中记录每个学生的成绩。如果有5个学生,你可以创建一个长度为5的整型数组(int[]),然后将每个学生的成绩存储在数组的相应位置。接着,我们使用一个for循环遍历数组,计算所有学生的成绩总和,最后计算出平均成绩并输出。

harerace的博客 122

菜鸟教程java二维数组_菜鸟谈谈二维数组

在学C语言的时候,每次遇到二维数组,都特别头疼,并不是它难用,而是我搞不清楚它的数组名代表的是什么。但我们知道:当我们定义一个一位数组的时候,它的数组名就是第一个元素的地址,也就是,下面的语句是等价的:int a[3]={1,2,3};printf ("%d\n",a);printf ("%d\n",&a[0]);他们将会输出相同的值,而且更重要的是,他们的意义是一样的。因为在数组访问成员...

weixin_28309723的博客 448

java怎么数组缩容,谈谈你所不知道的ArrayList缩容

前言每当大家谈起ArrayList都只会关注它的自动扩容机制,但是大多数人却不会去关注ArrayList是否会自动缩容。下面会根据几个问题让大家了解一下ArrayList的缩容机制。PS:缩容指的是ArrayList中的Object数组elementData的大小缩减ArrayList是否会自动缩容?既然ArrayList的自动扩容一般是发生在add()和addAll()方法中,那么当ArrayL...

weixin_39774905的博客 577

ascSort数组升序排序java,从基础的角度来谈谈javascript数组对象的sort()方法

这大晚上的,明天还要码地,废话就不多说了,因为无意(-. -)看见了有不少同学问关于数组排序的问题,也有不少同学给出了很好的解答,给了我不少启发,感谢大家对我(-_ -)的帮助.另外感谢@xuexiphpa同学在js数组中的排序问题中给的推荐.关于数组排序的sort()方法(不带参数):var arr=["a","c","e","d","b"];var arr2=[1,20,15,30,6]dou...

weixin_31785421的博客 276

谈谈你对Java数据结构的理解(数组、链表、队列、栈、堆、树、图)

一、数组 数组存放在一块连续的内存空间中; 由有限个相同类型的变量所组成的有序集合,按一定的顺序储存; 查找速率快,利用索引的方式进行查找,第一的元素的索引为0,插入和删除的速率较慢,因为需要移动大量的节点; 定义动态数组 数组常用方法主要为增(add)删(remove)改(set)查(put)长度(size) 二、链表 链表中的元素可存储在内存的任何地方(每个元素存储了下一个元素的地址),无序储存; 插入和删除速率较快,但查找速率慢;

FanZaiYo的博客 457

java 1.8 拿到数组下标_Java容器面试题:谈谈你对 HashMap 的理解

回答HashMap 是一种存取高效但不保证有序的常用容器。它的数据结构为“数组+链表”,是解决哈希冲突的产物,也就是我们常说的链地址法。它实现了Map 接口采用K-V 键值对存储数据,并实现了浅拷贝和序列化。HashMap 的默认初始大小为16,初始化大小必须为2的幂,最大大小为2的30次方。数组中存储的链表节点Entry 类实现于Map.Entry 接口,它实现了对节点的通用操作。HashMap...

weixin_30443729的博客 281

【漫画】谈谈Redis持久化,java数组集合面试题

(3)子进程尝试将数据dump到临时的rdb快照文件中(4)完成rdb快照文件的生成之后就替换之前的旧的快照文件dump.rdb,每次生成一个新的快照,都会覆盖之前的老快照AOF :Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

m0_60147147的博客 952

java 1.8 拿到数组下标_【66期】Java容器面试题:谈谈你对 HashMap 的理解

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅。为了能够在面试回答中优雅而不失体面回答面试考点,该文章借鉴了不同平台对知识点的描述。回答HashMap 是一种存取高效但不保证有序的常用容器。它的数据结构为“数组+链表”,是解决哈希冲突的产物,也就是我们常说的链地址法。它实...

weixin_30368981的博客 171

外部sram数组读写volatile_Java面试系列(五)--谈谈对volatile的理解

面试官:谈谈你对volatile的理解?当用volatile去申明一个变量时,就等于告诉虚拟机,这个变量极有可能会被某些程序或者线程修改,为了确保这个变量修改后,应用程序范围内的所有线程都能知道这个改动,虚拟机就必须采用一些特殊的手段,保证这个变量的可见性等特点。最简单的一种方法就是加入volatile关键字。volatile是Java虚拟机提供的轻量级的同步机制,volatile有三大特性:保证...

weixin_39945810的博客 85

关于java中对数组的理解

一.数组的定义 数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并且通过编号的方式对这些数据进行统一管理。 二.数组相关的概念: 数组名:定义数组的时候所起的名字 元素: 角标、下标、索引 数组的长度:元素的个数 三.数组的特点: 数组是有序排列的 数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 创建数组对象会在内存中开辟一整块连续的空间 数组的长度一旦确定,就不能修改。 四.数组的分类: 按照维数:一维数组、二维数组

zry2580的博客 388

Java中的数组的理解

Java中的数组的理解     Student[] students = new Student[]{         new Student("Tom",15),         new Student("Jack",19),         new Student("Rose",17),         new Student("Jone",20)     };

Caoyun_87的专栏 268

谈谈数组

一、数组是如何实现O(1)级别的下标随机访问 我们平时经常说数组适合用于查找,不适合增删,是因为数组查找的时间复杂度低,为O(1)。其实这句话的表述不对,数组查找一个数的时间复杂度最多是O(logn),而所谓的时间复杂度为O(1)实际上指的是根据数组下标对数组进行的随机访问。那么,数组是如何实现对下标的随机访问的呢? 当我们创建一个数组对象,并且规定了数组的存储类型、初始化大小,那么操作系统便会根...

whgtheone的博客 396

java数组定义、使用、以及数组内存分析详解

前言 本文主要是从容器概念到数组概念再到数组的三种定义以及各种情况的数组内存分析,以及一些数组常用的遍历以及反转、取最大值等操作。旨在全面性了解java数组。 文章目录1、什么是容器2、什么是数组3、数组的三种定义定义方式一定义方式二定义方式三数组定义格式详解:4、数组的访问5、什么是内存5.1 Java虚拟机的内存划分5.2 数组在内存中的存储5.2.1 一个数组内存图5.2.2两个数组内存图5...

宜春 8042
上一篇: 谈谈Java的异常处理
下一篇: Java中的容器
Cpp_Java_Man
博客等级 码龄21年 26粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值