Java中数组的简单使用

本文详细介绍了Java中的数组,包括基本概念、初始化、遍历方法、内存存储(栈与堆)、引用变量、null值、数组作为返回值以及数组在方法间的交互。讲解了数组转字符串、拷贝、求平均值、顺序查找、二分查找、数组逆序、冒泡排序等操作,并探讨了二维数组的使用。此外,还涉及到了引用赋值、内存回收和空指针异常等概念。
摘要由CSDN通过智能技术生成

1.数组的基本概念

2.基本用法

    (1)初始化

    (2)三种遍历方法

    (3)内存存储 栈与堆

    (4)引用变量

    (5)null

    (6)作为返回值

3.数组与方法互操作

     (1)数组转字符串  Arrays

     (2)数组拷贝

     (3)求数组中元素的平均值

     (4)查找数组中指定元素(顺序查找)

     (5)查找数组中指定元素(二分查找)

     (6)数组逆序

     (7)冒泡排序

     (8)二维数组


数组的基本概念

数组:数组是一块连续的存储空间,存储的是相同数据类型的元素(通过数组,组织一些数据)

eg:

int a1=1;

int a2=2;

int a3=3;---->

int[ ] array={1,2,3};

float[ ] array={1.0f,2.5f};

数组的下标从0开始,与C语言一样,n-1结束

下标也称为索引,C语言下标越界是会给出一个随即值,Java中会直接报错(数组越界异常)。

索引范围【0,len-1】

数组的长度计算:

int len = array.length;

System.out.println(len);

数组的两种写法:

int[ ] array3 =new int[10];//只是分配了内存,但没有进行赋值,只有默认值

 

初始化

int[ ] array1;

array1=new int[10];

int[ ] array2;

array 2=new int[ ]{10,20,30};

数组的遍历

三种方法:

 

  区别在于:for循环可以拿到数组的下标,foreach拿不到数组的下标

                    Arrays把数组转换成字符串,更方便打印

eg:初始化一个数组,存储1-100,并且打印出来

 

 初级Java先关注栈和堆

 如果直接打印的是数组名,打印出来的不是数组数据,而是其首元素的地址

 下面从栈和堆的角度来理解Java中的内存存储

引用之间的赋值

eg1:

 

结果可以发现,只改变了array2 ,但是array2和array1的数据都发生了变化

 

 

 array2这个引用指向的是array1所引用的对象

 eg2:

 

 

 结论:一个引用不能指向多个对象,一个对象可以被多个引用

注意:当引用不指向任何对象时 赋值为null,只要引用为空,对其的任何操作都是错误的(空指针异常)

eg: int[ ] array=null;

错误写法: int[ ] array=0; Java中null与0没有任何关系

eg:利用引用进行数组传参

 

 

 func1有两个指向,只指向所存放地址的那个,即指向只有一次

func2指向只有一次,但它修改了指向对象里面的值

数组作为返回值

 

 数组的传参

eg:交换数组中的两个元素

 

 注意:引用变量目前是在main函数里的,它属于局部变量,当函数结束会被内存回收,对象的回收,是没有引用它的时候回收。

否则初始化一律用new

eg: int[ ] array=new int[ ]{1,2,3,4,5} 

数组的练习

(1)数组转字符串  Arrays:如上 注意要拿返回值去接收它

eg:尝试自己定义一个数组转字符串的方法

 

 (2)数组拷贝

1.int[ ] array2=Arrays.CopyOf(array,array.length);

补充:如果想扩容

int[ ] array2=Arrays.CopyOf(array,2*array.length);

2.System.arraycopy(原数组,开始拷贝的原数组的位置,新数组,开始拷贝的新数组的位置,要拷贝的长度);

可以局部拷贝,但需要注意不能越界。

 

 

 

3.int[ ] array2=Arrays.copyOfRange(要拷贝的数组名,从哪位拷贝,拷贝到哪位);

注意:Java中 from....to是左闭右开的,所以右边的范围取不到。

eg:from1.....to4   [1,4)   实际上取值第1,2,3位

 4.array.clone();

 5.自己写代码实现 

思想:先建立一个与原先数组空间大小相同的内存,再一对一拷贝其数组中的元素。

 

(3)求数组中元素的平均值 

 

      (4)查找数组中指定元素(顺序查找)

 

 (5)查找数组中指定元素(二分查找)

注意:二分查找需要一组数据按照升序排列,可以用Arrays.sort(array);

1.自己写代码完成

 

 2.利用Java的 Arrays,binarySearch(array,key)

 (6)数组逆序

 

 (7)冒泡排序

 

 (8)二维数组

二维数组的表示方法

int [ ] [ ] array1=new int[2] [3];

int [ ] [ ] array2=new int[ ] [ ] {{1,2,3},{4,5,6}};

int [ ] [ ] array3= {{1,2,3},{4,5,6}};

二维数组的打印

 直接用Arrays.toString打印出来的是地址

1.可以用for循环打印,用Arrays.deepToString()打印

2.for循环 使用length时

3. 用foreach接收

 不规则的二维数组:可以省略掉列

 eg: int[ ] [ ]array=new int [2] [ ];打印其会出现空指针异常

不规则数组可以让每一行的列数不一样

 

 

Roylelele
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
java--数组使用
asdfg2047的博客
07-25 232
/数据类型[]数组名=new数据类型[]{数据1,数据2,....,数据n};数据类型[]数组名=new数据类型[数组长度];或者数据类型数组名[]=new数据类型[数组长度];//数据类型数组名[]=new数据类型[]{数据1,数据2,....,数据n};//数据类型[]数组名={数据1,数据2,....,数据n};//数据类型数组名[]={数据1,数据2,....,数据n};//数组名=new数据类型[数组元素个数];...
Java数组在内存存放原理的讲解
08-26
Java数组在内存存放原理的讲解 Java数组在内存存放原理是指Java语言数组在内存的存储机制。Java数组被实现为对象,它们一般都会因为记录长度而需要额外的内存。对于一个原始数据类型的数组,一般需要...
Java——数组使用
qq_59599094的博客
11-07 3085
Java数组使用
java 数组使用
信橙则灵的博客
08-01 1779
数组可以存放多个的数据,数组也是一种数据类型,是引用类型。即:数组就是一组数据。
Java数组使用
qq_61984546的博客
06-05 707
Java 数组是一种非常有用的数据结构,它用于存储相同类型的元素,并且可以通过下标访问。在本文,我们将介绍 Java 数组使用,包括如何声明、创建、初始化和使用数组
java数组使用
最新发布
2202_76101487的博客
11-17 480
本篇内容主要讲解了数组的相关知识。
java删除数组的某一个元素的方法
08-31
总结来说,虽然Java数组不支持直接删除元素,但我们可以通过替换、使用集合类或创建新数组等方法间接实现这个功能。根据实际需求和性能考虑,可以选择最合适的方法。在实际开发,如果需要频繁进行增删改查操作,...
js接收并转化Java数组对象的方法
10-21
本文介绍了如何使用JavaJavaScript进行数据交互,并且详细描述了从Java后端转换数组对象为JSON字符串,到JavaScript前端解析这个JSON字符串的整个过程。通过这种方式,可以有效地在前端和后端之间传递复杂的数据...
Java高效的判断数组某个元素是否存在详解
09-01
文章的示例代码展示了如何对这些方法进行简单的性能测试,通过在不同大小的数组上重复执行查找操作并记录平均耗时。 在实际应用,选择哪种方法取决于具体需求。如果数组较小,且不关心性能,使用`List.contains...
Java数组的创建与传参方法(学习小结)
09-01
以下是一个简单的示例,展示了如何在方法使用数组: ```java public class ArrayDemo { public static void main(String[] args) { int[] score = new int[3]; fillArray(score); for (int x = 0; x ; x++)...
Java数组使用
weixin_49756100的博客
05-08 1106
今天给大家介绍的是Java数组的基本使用Java数组有一维数组和多维数组,今天主要讲一维数组和二维数组,多维数组可以在二维数组的基础上推导出用法。 1、数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2、数组的特点: (1数组是序排列的 (2数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 (3创建数组对象会在内存开辟一整块连续的空间 (4数组的长度一旦确定,就不能修改。 一、 一
数组Java的运用
2303_78069012的博客
05-11 453
当用new运算符创建一个数组时,系统就为数组元素分配了存储空间,这时系统根据指定的长度创建若千存储空间并为数组每个元素指定默认值。数组 marks的每个元素都被初始化为0.0,而数组words的每个元素被初始化为null。其,index为数组元素下标或索引,下标从0开始,到数组的长度减1。例如,上面定义的words数组定义了三个元素,所以只能使用words[0]、words[1]和words[2]这三个元素。声明数组同时可以使用初始化器对数组元素初始化,在一对大括号给出数组的每个元素值。
Java数组 --- 数组的基本用法
qq_30007589的博客
06-30 851
    以二维数组为例,一位数组类似/** * 二维数组的基本用法 * @author Administrator * */ public class Test01 { public static void main(String[] args) { //声明与赋值 int[][] a = { {1,2}, {3,4,0,9}, {5,6,7} ...
Java数组使用(初学者必备)
m0_46813381的博客
04-15 2070
Java数组简单应用
qq_43728862的博客
03-23 195
Java数组的定义 数组:具有相同数据类型的元素的集合。 数组可以存放大量的数据所以数组是具有一组连续的内存空间; 使用数组的三个步骤 1,定义数组:格式:类型名 数组名[] 2,定义之后你要让数组存放数据,所以要给数组申请空间:格式: 数组名 = new 类型名[数组的长度] 3,数组的赋值:(1) 直接赋初值 int a[] = {1,2,3};或者是int a[]; a = ne...
Java 数组使用
一朵花花
08-15 4454
数组的定义 数组:可以看作相同类型元素的一个集合,且在内存是一块连续的内存空间 注意: C语言数组的内存在栈上 在Java数组的内存在堆上 数组的创建及初始化: 1.数组的创建: 基本语法格式: T[ ] 数组名 = new T[N]; . ① T,即Type,表示:数组存放元素的类 ② T[ ], 表示:数组的类型 ③ N, 表示:数组的长度 举例: 创建一个可以容纳10个int类型元素的数组 int[] array1 = new int[10]; 创建一个可以容纳5个doub
Java数组的基本用法
sunberryL的博客
07-20 494
一维数组数组的定义:1、数据类型 数据名[] (数据类型 [] 数据名) =new 数据类型[];例如 int a[]=new int []; 2、数据类型 数据名[] (数据类型 [] 数据名) ;//先声明 例如:int a[]; 数据名=new 数据类型[];//再创建数组
Java多维数组详解:声明、初始化与使用
"本资源主要介绍了Java数组特性,特别是多维数组的声明、初始化及其使用。" 在Java编程语言数组是一种非常重要的数据结构,它允许我们存储多个相同类型的数据,并对其进行统一管理。数组属于引用类型,这...
写文章

热门文章

  • Java中的递归 5036
  • no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法) 4274
  • 创建SpringBoot项目后无法运行Java文件的解决方法 3667
  • 创建JDK8版本的SpringBoot项目的方法 2234
  • Lombok工具包的安装和使用 2121

分类专栏

  • 软件测试 7篇
  • JavaEE 39篇
  • Python 1篇
  • web 10篇

最新评论

  • 创建SpringBoot项目后无法运行Java文件的解决方法

    GuessingBlast: 无敌了,就是maven的问题。这博主真给力

  • leetCode - - - 数组

    CSDN-Ada助手: 推荐 算法 技能树:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

  • 创建SpringBoot项目后无法运行Java文件的解决方法

    ii_112: 谢谢

  • 性能测试重要概念

    CSDN-Ada助手: 推荐 Java 技能树:https://edu.csdn.net/skill/java?utm_source=AI_act_java

  • 使用Kaptcha实现的验证码功能

    小梁说代码: 受益了,感谢博主!

最新文章

  • leedCode - - - 动态规划
  • leetCode - - - 二叉树
  • leetCode - - - 二分查找
2024年28篇
2023年44篇
2022年21篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roylelele

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

玻璃钢生产厂家盐城玻璃钢人物雕塑扬州商场主题美陈南京喜妹玻璃钢雕塑长沙特色玻璃钢雕塑设计陕西水果玻璃钢雕塑生产厂家蝴蝶玻璃钢景观雕塑辽宁园林玻璃钢雕塑商场美陈 城市记忆520商场美陈装修效果图江苏无锡品正企业玻璃钢花盆河南佛像玻璃钢雕塑多少钱呼市商场美陈选择微天下广告江西玻璃钢雕塑的特点云南设计雕塑玻璃钢曲阳做玻璃钢雕塑无锡荆门玻璃钢卡通雕塑玻璃钢雕塑找谁家商场美陈在哪寻找灵感商场干花美陈布置苹果商场美陈玻璃钢仿铜人物雕塑批发厂家周口玻璃钢雕塑生产厂家深圳装饰商场美陈批发贵州户外玻璃钢雕塑设计商场美陈雕塑厂家张家界长沙玻璃钢雕塑定制多少钱玻璃钢泡沫稿雕塑金华景区玻璃钢雕塑定做价格海南玻璃钢西瓜雕塑南瓜玻璃钢卡通雕塑现货香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化