Java学习之数组的简单用法
•概念
其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作。
数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配;
而数组的定义语法有两种:
- 静态初始化
- 动态初始化
•静态初始化
简化格式
- 数据类型 数组名称 = {值, 值,…}
- int[] x = {0,1,2,3};
完整格式
- 数据类型 数组名称 = new 数据类型[] {值, 值,…}
- int[] y = new int[]{0,1,2,3};
在开发之中,对于静态数组的初始化强烈建议使用完整语法模式;
这样可以轻松地使用匿名数组这一概念。
public class TestArray { public static void main(String[] args) {
System.out.println(new int[] {1,2,3}.length);
}
}使用静态方式定义数组的时候,最好写上完整格式。
•动态初始化
数据类型[ ] 数组名称 =
new数据类型[长度]
- int[] a = new int[10];//动态初始化数组,先分配空间
需要注意的是数组属于引用数据类型,所以在数组使用之前一定要开辟空间(实例化);
如果使用了没有开辟空间的数组,则一定会出现 NullPointerException 异常信息;
•数组中的简单操作
数组的访问通过索引完成,即 a[0],a[1],.......,a[9]
通过 a.length 获取数组 a 的长度
•arraycopy
参数
System.arraycopy(src, srcPos, dest, destPos, length);
src 表示源数组
srcPos 表示源数组中拷贝元素的起始位置
dest 表示目标数组
destPos 表示拷贝到目标数组的起始位置
length 表示拷贝元素的个数
需要注意的是在进行数组拷贝时,目标数组必须有足够的空间来存放拷贝的元素,否则就会发生下标越界异常。
public class TestArray { public static void main(String[] args) { int[] a = {0,1,2,3,4};
int[] b = new int[10];
for(int i = 0;i < b.length;i++)
b[i] = -1; System.arraycopy(a, 0, b, 1, a.length); for(int x : b)
System.out.print(x+" ");
}
}输出结果
•数组填充
java 中的数组初始值都为零,若想要快速填充一个其他值,可以用 Arrays.fill 方法;
但只能填充一个一维数组,多维数组得用循环。
int[] array = new int[10];
Arrays.fill(arrayname,value)
- Arrays.fill(array,50);//array[0,...,9] = 50;
Arrays.fill(arrayname,a,b,value)
- 填充区间 [a,b)
- Arrays.fill(array,2,5,50);//array[2,..,4] = 50;
填充多维数组
public class TestArray { public static void main(String[] args) { int array[][]=new int[10][10]; for(int i=0;i < 10;++i)
Arrays.fill(array[i],50);
}
}
Java学习之数组的简单用法的更多相关文章
- Java的稀疏数组的简单代码实现
目录 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 二.稀疏数组的Java代码实现思路 三.稀释数组的Java代码实现 四.结语 Java的稀疏数组的简单代码实现 一.稀疏数组的基本概念 ...
- JAVA学习笔记 (okHttp3的用法)
最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法. 1.概述 okhttp是一个 ...
- JAVA学习笔记--数组初始化
JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...
- Java学习之路:ArrayList用法
1.什么是ArrayList ArrayList是一个动态数组传奇,使用MSDN声明.那是,Array复杂的版本号,它具有以下优点,例如: 动态的添加和降低元素 实现了ICollection和 ...
- java学习之数组(二)
在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...
- java学习之数组(一)【内存】
在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...
- java学习笔记 --- 数组
一.Java的内存分配 A:栈内存: 存储局部变量,只要是在方法中定义的变量都是局部变量.一旦变量的生命周期结束该变量就被释放. B:堆内存: 存储所有new出来的,及实体(对象),每一个实体 ...
- java学习之—实现一个简单的ArrayList
package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ...
- Java内置锁和简单用法
一.简单的锁知识 关于内置锁 Java具有通过synchronized关键字实现的内置锁,内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码就获得锁,走出相应的代码就释放锁. jav ...
随机推荐
- HTML script tag type all in one
HTML script tag type all in one script type https://developer.mozilla.org/en-US/docs/Web/HTML/Elemen ...
- Flutter ColorFiltered 将ColorFilter应用于其子级。
ColorFiltered ColorFilter BlendMode Example <summary>main.dart</summary> import 'package ...
- PAUL ADAMS ARCHITECT LTD:拜登上台后,美国房地产走势如何?
受全球经济危机影响,美国经济的复苏之路并不平坦,然而住宅房地产市场却是少数的例外,表现得非常亮眼.而随着美国拜登总统上台的临近,美国房产市场还会持续当前的发展吗?对于这个问题,近日,美国知名房地产公司 ...
- NGK与Captain technology合作 推出贷款体验用于简化汽车经销商流程
据外媒报导,近日,NGK.IO正在与Captain technology恰谈合作事宜,以简化购车体验,包括简化购车流程.NGK的CTO Stephen Litan表示:"NGK宣布与Capt ...
- 01_MySQL从下载—>安装—>到快速上手
一.MySQL下载 二.MySQL安装 三.MySQL几条简单命令快速上手(增删改查) 一.MySQL下载与安装 下载地址:https://dev.mysql.com/downloads/mysql/ ...
- 微信小程序:删除时提示是否删除
代码如下: wx.showModal({ title: '提示', content: '确定要删除吗?', success: function (sm) { if (sm.confirm) { // ...
- 基于3.X版本的脚手架创建VUE项目
一.基于交互式命令行的方式,创建vue项目 1.命令:vue create 项目名称.项目名称必须是英文的.不要包含中文.特殊的字符和符号.在cmd中输入命令:vue create vue_proje ...
- 第46天学习打卡(四大函数式接口 Stream流式计算 ForkJoin 异步回调 JMM Volatile)
小结与扩展 池的最大的大小如何去设置! 了解:IO密集型,CPU密集型:(调优) //1.CPU密集型 几核就是几个线程 可以保持效率最高 //2.IO密集型判断你的程序中十分耗IO的线程,只要大于 ...
- .NET并发编程-数据并行
本系列学习在.NET中的并发并行编程模式,实战技巧 内容目录 数据并行Fork/Join模式PLINQ 本小节开始学习数据并行的概念模式,以及在.NET中数据并行的实现方式.本系列保证最少代码呈现量, ...
- 后端程序员之路 15、Matplotlib
Matplotlib: Python plotting - Matplotlib 2.0.0 documentationhttp://matplotlib.org/ matplotlib-绘制精美的图 ...
