[Java 基础]数组
数组初始化
定义数组语法格式
定义数组有两种方式,如下两种格式是等价的:
int[] a1; int a1[];
注:在C/C++中,不支持第一种格式。但是,推荐使用这种方式,因为这样似乎更合理,声明了一个整型数组类型的变量,名字为a1。
数组大小
JAVA中,数组不允许在方括号中指定维度(即在方括号中指定数字来限制数组大小)。那么,如何限定数组的大小呢?有以下两种方式:
●使用初始化列表
int[] array = {1, 2, 3, 4, 5, };
注:初始化列表的最后一个逗号是可选的(这一特性使维护长列表变得更容易)。
对象数组
基本类型数组就是指保存的数据类型为基本类型的数组,如int、long、double等。
对象数组是指保存的数据类型为非基本类型的数组,如一些内置类或自定义类等。
对象数组和基本类型数组在使用上几乎是相同的;唯一区别就是对象数组保存的是引用,而基本类型数组直接保存的是基本类型的值。
如下代码中,声明一个自定义类apple类型的数组。如果在数组的各元素还未初始化时就引用这些元素,运行时会报错(代码注释处)。
class Apple {
}
Apple[] apples;
apples = new Apple[3];
//System.out.println(apples[0].toString());
for (int i = 0; i < 3; i++)
apples[i] = new Apple();
System.out.println(apples[0].toString());
使用new int[]
int[] array; array = new int[5]; //分配一个含有5个int型元素大小的数组,所有元素自动初始化为0
数组赋值
不同于C/C++,在JAVA中,允许将一个数组整体赋值给另一个数组。如下:
int[] array = {1, 2, 3, 4, 5,};
int[] array2;
array2 = array;
for (int i = 0; i < array2.length; i++) {
array2[i] = array2[i] + 1; //给数组元素赋值
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
运行结果:
2 3 4 5 6
这里,其实是复制了一个引用。当array的引用复制给array2后,再对array2进行修改实际上等同于修改array。所以两个数组的值同时发生改变。
注:和C/C++一样,JAVA数组计数也是从第个元素开始,所以下标最大值为length-1。如果超出边界,编译器会提示错误。
数组的特点
数组是一种效率最高的存储和随机访问对象引用序列的方式。
如果和现在广泛使用的容器相比较,它的优点在于访问效率比较高,缺点在于大小固定,没有容器的大小伸缩性。
Arrays实用功能
在 java.util.Arrays 类中提供了一套用于数组的static实用方法。以下介绍几个常用的基本方法:
| 方法名 | 作用 |
| equals | 比较两个数组是否相等,deepEquals用于多维数组 |
| fill | 用同一个值填充各个位置。 |
| sort | 对数组排序 |
| binarySearch | 用于已经排序的数组中查找元素 |
| toString | 产生数组的String表示 |
| hashCode | 产生数组的散列码 |
[Java 基础]数组的更多相关文章
- Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
- java基础-数组的折半查找原理
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...
- Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
- 《Java基础——数组的定义与使用》
Java基础--数组的定义与使用 一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量 ...
- Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
- Java基础--数组(Arrays)
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理.本篇博客是对Java基础中的数组进行详细说明. 目录: 数组的概述 一维数组 ...
- java基础---数组的基本概念(1)
学习资源来自尚硅谷java基础学习 1. 数组的概念 数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理. 数组属于引用数据类 ...
- JAVA基础——数组详解
学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...
- Java基础——数组复习
数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 数组长度固定不变,避免数组越界 数组是静态分配内存空间的,所 ...
- Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准Java类库中提供了一 ...
随机推荐
- 分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告
分享:用 NDK C++做底层开发的Android 浏览器,纯免费,无广告 操作简单,傻瓜一看就会 无毒.无广告.无负作用,完全免费 下载地址1:http://awdjcfeizb.l33.yunpa ...
- Oracle expdp/impdp导出导入命令及数据库备份
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- ENode 1.0 - 消息的重试机制的设计思路
项目开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架中消息队列的设计思路,本文介绍一下enode框架中关系消息的重试机制的设计思路 ...
- 图解集合3:CopyOnWriteArrayList
初识CopyOnWriteArrayList 第一次见到CopyOnWriteArrayList,是在研究JDBC的时候,每一个数据库的Driver都是维护在一个CopyOnWriteArrayLis ...
- 开源项目asmjit——调用自定义方法demo以及windbg调试
asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...
- [MFC] VS2013版本MFC工程移植到VC6.0上
:VS虽号称“宇宙最强IDE”,但是有时候安装包太大,动不动就几个G:而且安装好之后也会多出很多几乎很难用到的部分,这对于那些处女座的人如何忍受!本文不是吐槽,而是给出一种在应急场景下,不用安装新版本 ...
- IOS上架流程
来个简易版本的.此版本针对用于初次上架的MAC以及在别的本上上架过,但是新换MAC但不换开发者帐号的MAC. 1:首先确认本机没有老旧的开发和distribution证书,有的话,删除: 2:在本机打 ...
- 如何用django开发一个简易个人Blog
功能概要:(目前已实现功能) 公共展示部分: 1.网站首页展示已发布的博客记录,包括名称.摘要信息.发布日期.阅读量及评论数. 2.首页文章列表可按照分类筛选. 3.点击标题或阅读全文链接,进入博客阅 ...
- atitit.事件驱动的总结attilax
atitit.事件驱动的总结attilax Keyboard 基于的的ed 与 mouse 基础的ed Kb base on focus .... Mouse base on mouse mo ...
- JS操作页面
DOM操作 1 windows对象操作 属性(值或者子对象): opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null.可以利用这属性来关闭源窗口 方法(函数 ...