[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数组计数也是从第0个元素开始,所以下标最大值为length-1。如果超出边界,编译器会提示错误。

 

数组的特点

数组是一种效率最高存储随机访问对象引用序列的方式。

如果和现在广泛使用的容器相比较,它的优点在于访问效率比较高,缺点在于大小固定,没有容器的大小伸缩性。

 

Arrays实用功能

在 java.util.Arrays 类中提供了一套用于数组的static实用方法。以下介绍几个常用的基本方法:

方法名 作用
equals 比较两个数组是否相等,deepEquals用于多维数组
fill 用同一个值填充各个位置。
sort 对数组排序
binarySearch 用于已经排序的数组中查找元素
toString 产生数组的String表示
hashCode 产生数组的散列码


本文转自静默虚空博客园博客,原文链接:http://www.cnblogs.com/jingmoxukong/p/4023808.html,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 Java 索引
个人笔记—Java基础—数组
该内容是关于数组的介绍。数组是一种容器,用于存储同类型的多个值。初始化有静态和动态两种方式:静态初始化是在创建时直接指定元素,有完整和简写格式;动态初始化则只指定类型和长度,不给定具体元素。访问数组元素通过索引,从0开始,修改元素是`数组名[索引] = 值`,数组长度是`数组名.length`。遍历数组通常用for循环。内存分配上,类信息和静态数据存放在方法区,栈内存负责方法执行和局部变量,堆内存用于new出的对象和数组,有默认初始值。
20 0
|
22天前
|
存储 Java 程序员
Java 数组
4月更文挑战第16天
|
1天前
|
存储 算法 搜索推荐
滚雪球学Java(27):从零开始学习数组:定义和初始化
【5月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
7 3
|
3天前
|
Java 索引
Java中数组详解
Java中数组详解
44 19
|
4天前
|
Java
解析java中的数组
解析java中的数组
10 3
|
4天前
|
存储 安全 Java
Java一分钟之-数组的创建与遍历
【5月更文挑战第8天】本文介绍了Java中数组的基本概念、创建与遍历方法,强调了类型匹配和数组越界问题。示例展示了如何创建整数数组并初始化元素,同时提供了避免数组越界的策略。对于遍历,文章提到了for循环和增强型for循环,并给出了防止错误的建议,如正确声明类型、初始化数组、安全索引操作及使用合适的数据结构。遵循这些指导可帮助开发者有效管理Java数组并减少错误。
17 0
|
13天前
|
存储 Java 索引
Java数组
Java数组
23 0
|
13天前
|
存储 算法 Java
【Java探索之旅】掌握数组操作,轻松应对编程挑战
【Java探索之旅】掌握数组操作,轻松应对编程挑战
11 0
|
13天前
|
存储 Java C语言
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
【Java探索之旅】基本类型与引用类型 数组的应用 二维数组
14 0
|
13天前
|
存储 机器学习/深度学习 Java
【Java探索之旅】数组使用 初探JVM内存布局
【Java探索之旅】数组使用 初探JVM内存布局
26 0