分享好友 最新动态首页 最新动态分类 切换频道
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:返回指定数组内容的字符串表示形式。

单独介绍一下二分查找:

最新文章
电信0元购机,你又中招了么?
h3电信0元购机,又玩的什么套路?/h3div 最近电信用户改成149套餐,免费拿手机活动席卷全城。异常火爆,办理的用户络绎不绝,但是大家真的搞懂的吗?现在小编来为大家做个分析。/divdiv 首先向大家介绍一款APP,APP名字叫翼支付,翼支付是中
西门子智能锁人工客服电话-西门子智能锁使用说明
您好!欢迎使用西门子智能锁。若您在使用过程中遇到任何问题或有任何疑问,请拨打我们的人工客服电话:--。我们将竭诚为您提供满意的服务。作为一款智能产品,西门子智能锁旨在为用户提供便捷、安全的家居锁具体验。无论您身在哪个城市,只
迅课网校系统【商品分享】能力提速,微链接一键跳转小程序,增加曝光
通过商品的分享曝光来获得用户流量,这是各行各业的品牌商家都在用的获客方式。毕竟分享是获客的基础能力。为了让品牌商家获客变得更容易,助力商家以多种形式分享,曝光商品资源的同时触达用户,迅课技术团队针对「商品分享」功能进行了一
探索 AI 写作技巧拓展思维边界
随着人工智能技术的飞速发展,AI 写作已经逐渐成为现实。AI 写作不仅可以帮助我们完成一些简单的文章创作,还可以在某些方面超越人类作家。然而,AI 写作也面临着一些挑战和限制。在这篇文章中,我们将探讨一些 AI 写作的技巧,以帮助 AI
这所香港高校试图让“00后”重新理解创新创业
·香港城大创新学院副院长刘特斌认为,创新创业教育要解决的最大痛点是让学生跳出舒适圈,而不是停留于学校实验室,“如果你真的做得好,你的毕业商业计划书可能会成就你的第一个初创公司。”“开始系统学习创业这门课程后,我才发现原来‘
农村旱厕改造问题
  在家庭装修中,水电改造时特别麻烦而且多事的一个部分,特别是在农村,因为很多房子都是自建房的关系,让农村水电改造变得更加困难,事实上,农村水电改造可以总结为几个步骤,包括水管开槽和安装、电路开槽、电路布线。  一、农村水
百度站长平台站点属性设置功能升级内测中介绍
百度站长平台今日撰文称,百度站长平台对站点属性设置功能进行了全面升级,并且已经正式开启内测。据百度官方表示,升级后的站点属性设置新增了上传网站logo功能,上传网站logo并通过审核(PS:不能保证所有提交的logo图片都能通过审核)的
聊一聊抖音快手cid广告到底怎么做的
2017年06月13日时胜蕊100抖音、快手、微信朋友圈、百度、360、搜狗、神马、广点通、小红书、微博、今日头条等网络推广渠道技术开发、技术推广、技术转让、技术咨询、技术服务;销售自行开发的产品;计算机系统服务;基础软件服务、应用软件
鸿蒙os系统怎么开启root环境,鸿蒙os可以root
1、首先打开手机的设置图标,然后下拉到最底端,点击系统。然后选择开发人员选项。接着打开开发者选项的开关。选择模似位置选项使用。许多系统都内置了开发者模式,鸿蒙系统也不例外。2、在手机设置菜单中点击【关于手机】选项。连续点击7
相关文章
推荐文章
发表评论
0评