分享好友 最新动态首页 最新动态分类 切换频道
java数据结构1--数组、排序和Arrays工具类
2024-12-26 21:49
  • 数组的定义
  • 数组的内存结构
  • 数组定义常见问题
  • 数组常见操作
  • Java参数传递问题--值传递
  • 二维数组

同一种类型数据的集合,可以是基本数据类型,也可以是引用数据类型。

java数据结构1--数组、排序和Arrays工具类

数组的特点:

  1. 数组存储的都是相同数据类型的元素(相同数据类型
  2. 数组的长度也就是数组中元素的个数(固定长度
  3. 元素从0开始编号,编号也称“索引”:index(下标,角标)(从零开始
  4. 数组中元素的访问方式是通过数组名+索引的方式:arr[1](索引访问

 

数组的定义格式

 

初始化方式1:
动态初始化:数组的创建和元素的赋值分开进行
格式:
元素类型[] 数组名 = new 元素类型[数组长度];
int[] arr = new int[3];

 


初始化方式2:
静态初始化:数组创建时就给数组元素赋值
格式:
元素类型[] 数组名 = new 元素类型[]{元素1,元素2,…};
int[] arr = new int[]{2,0,3,1};
静态初始化的简化写法
int[] arr = {2,0,3,1};

直接打印数组类型的变量,会发现结果是一段看不懂的字符串,这就是引用数据类型变量的特点,它实际上代表的是一段内存空间的十六进制表示形式.真正的数据在JVM的堆内存空间中。

note:动态初始的构成元素都是默认是初始化成默认值的。

Java程序在运行时,为了提高运行效率,对内存进行了不同区域的划分,每一种区域都有特定的处理数据的方式和内存管理方式
主要有以下几种:

  • 栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放
  • 堆内存:存放数组和对象,通过new建立的实例都存放在堆内存中

每一个实例都有内存地址值
实例中的变量都有默认初始化值
当实例不再被使用,会在不确定的时间被垃圾回收器回收

  • 方法区:存放类文件和方法(面向对象部分再讲解)
  • 本地方法栈:供本地方法使用,与操作系统相关
  • 程序计数器--Program Counter:对字节码文件计数

数组的内存结构:不属于四类八种,所以占用两种内存

数组遍历:依次访问每个元素,访问的次数就是元素的个数,访问次数的确定:length属性(数组名.length)。

 

7.1二维数组的概念 

7.2 二维数组的定义

注意事项:

1.使用格式1,2时必须指定第一维长度
2.动态,静态初始化不能同时使用

 

7.3二维数组的遍历

8.1冒泡排序:bubble

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。

 

8.2 比较排序:compare(选择排序:select)

一下皆为静态方法。

  1. binarySearch:复制指定的数组
  2. copyOf:复制指定的数组
  3. copyOfRange:将指定数组的指定范围复制到一个新数组
  4. deepEquals:如果两个指定数组彼此是深层相等
  5. deepToString:返回指定数组“深层内容”的字符串表示形式。
  6. deepHashCode:基于指定数组的“深层内容”返回哈希码。
  7. equals:如果两个指定的 某 型数组彼此相等,则返回 true。
  8. fill: 将指定的 某型 值分配给指定 某 型数组的每个元素。
  9. sort:根据元素的自然顺序对指定某类型数组按升序进行排序。
  10. toString:返回指定数组内容的字符串表示形式。

单独介绍一下二分查找:

最新文章
漫蛙manwa防丢失漫画
漫蛙manwa防丢失漫画是款相当新颖的漫画阅读软件,尽情的沉浸在自己喜欢的漫画资源当中,所有的漫画都是免费为用户提供,拥有着非常便捷的搜索方式,软件上的漫画是高清正版的,这样在我们没有网络的时候也可以很好的观看动漫。1、网络连接
SEO人员,如何为一个关键词集权?
seo工作中会出现各种不一样的要求,比如行业非常细分,关键词极其稀少,只有几个或者一个有指数的关键词,这种情况客户要求只优化一个关键词,我们应该怎么做呢?一.站内优化 在做这种特殊的seo优化时
“千万工程”引领农村人居环境治理
近年来,农村人居环境得到极大改善,但还存在单一化、同质化、偏失化等不足。浙江省嘉善县缪家村在千万工程的带动下,从人居环境治理主体、方式、结构等维度发力,极大地提升了当地农村人居环境水平。因此,缪家村的成功实践可以为其他地区
【Python实战】一个星期练完这30个精心整理的Python项目案例,成功逆袭:靠接单月入W+轻轻松松,拿走就用~(大家冲鸭)
Python是目前最流行的语言之一,它在数据科学、机器学习、web开发、脚 本编写、自动化方面被许多人广泛使用。它的简单和易用性造就了它如此流行 的原因。在本文中,我们将会带大家学习到30个案例实战从入门案例到精通,
你明明长得挺好看,为什么总有一种“廉价感”?
大家好呀~你们有没有感觉,自己平时很努力的捯饬妆发、穿搭,但总感觉离自己理想中的高级感、贵气感差一步的距离。cr:木子真真、阿贞阿青Lifanlikey、燕燕有梨涡那很可能是细节上出了问题。入冬后,身边很多人都开始注重皮肤的保养,面霜
这里告诉抖音头条cid推广投放怎么开户
抖音头条cid投放具体流程  1、  营业执照照片或者扫描件加盖公章  邮箱:企业或者个人  对公账户  2、合同  纸质合同  电子合同  3、付款  公对公:开具税  支付宝在线充值 开具税  4、分配运营  4.1对接素材,页
科技圈震动!OpenAI“吹哨人”被发现在公寓自杀身亡
一则不幸的消息在科技圈刷屏。据最新报道,26岁的美国OpenAI公司前研究员苏奇尔·巴拉吉近期被发现在他位于旧金山的公寓内自杀身亡。旧金山首席法医办公室执行主任David Serrano Sewell本周五在一封电子邮件中证实了这一消息,并称死因为。
【Incredible E NFC豌豆荚下载】HTC Incredible E NFC豌豆荚8.2.5.1免费下载
豌豆荚拥有超过 200 万个最全的安卓应用和安卓游戏免费下载资源,六年为全国 4 亿人提供全面的手机内容服务。四个的原因:1. 从全网 29 家应用商店收录了超 200 万的应用和游戏。全网最全面的应用库,随便来折腾。2. 每一个应用游戏都经过
免费pdf合并工具推荐,简单好用,免费的用起来就是香!
如今PDF文档的管理和编辑成为职场必备技能。其中,免费PDF合并工具是高效整理文档的得力助手。今天我将向你介绍一款简单好用、免费PDF合并工具——万彩办公大师。让我们一起深入了解PDF合并的常识和技巧,如何助你提高工作效率。PDF合并不
情侣秀恩爱花式情侣网名
情侣秀恩爱花式情侣网名  生活中有很多情侣喜欢秀恩爱,比如穿情侣衣服、情侣鞋、情侣手机壳等等,就连网名也要取情侣的,来表达彼此之间不离不弃的感情。小编为大家收集了情侣秀恩爱花式情侣网名(精选700组),喜欢的朋友们可以挑一组与你
相关文章
推荐文章
发表评论
0评