前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Java 基础]数组

[Java 基础]数组

作者头像
静默虚空
发布2018-01-05 10:55:29
5370
发布2018-01-05 10:55:29
举报
文章被收录于专栏:静默虚空的博客

数组初始化

定义数组语法格式

定义数组有两种方式,如下两种格式是等价的:

代码语言:txt
复制
int[] a1;
 int a1[];

 注:在C/C++中,不支持第一种格式。但是,推荐使用这种方式,因为这样似乎更合理,声明了一个整型数组类型的变量,名字为a1。

数组大小

 JAVA中,数组不允许在方括号中指定维度(即在方括号中指定数字来限制数组大小)。那么,如何限定数组的大小呢?有以下两种方式:

●使用初始化列表

代码语言:txt
复制
int[] array = {1, 2, 3, 4, 5, };

注:初始化列表的最后一个逗号是可选的(这一特性使维护长列表变得更容易)。

对象数组

基本类型数组就是指保存的数据类型为基本类型的数组,如int、long、double等。

对象数组是指保存的数据类型为非基本类型的数组,如一些内置类或自定义类等。

对象数组和基本类型数组在使用上几乎是相同的唯一区别就是对象数组保存的是引用,而基本类型数组直接保存的是基本类型的

如下代码中,声明一个自定义类apple类型的数组。如果在数组的各元素还未初始化时就引用这些元素,运行时会报错(代码注释处)。

代码语言:txt
复制
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[]

代码语言:txt
复制
int[] array;
array = new int[5];    //分配一个含有5个int型元素大小的数组,所有元素自动初始化为0

数组赋值

不同于C/C++,在JAVA中,允许将一个数组整体赋值给另一个数组。如下:

代码语言:txt
复制
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] + " ");
 }

运行结果:

代码语言:txt
复制
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

产生数组的散列码

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组初始化
    • 定义数组语法格式
      • 数组大小
        • 对象数组
        • 数组赋值
        • 数组的特点
        • Arrays实用功能
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档