Java--数组

举报
一颗小谷粒 发表于 2024/09/17 19:09:39 2024/09/17
【摘要】 Array 类数据的集合。本质是一个对象,数据存储在堆区,由引用指向数组首个元素的地址。创建数组创建数组时,必须确定数组长度和类型。但如果储存的是基本类型,允许不赋初值(使用默认值)。int[] arr = new int[4]; // 方法一int[] arr = {1,2,3,4}; // 方法二int[] a...

Array 类

数据的集合。本质是一个对象,数据存储在堆区,由引用指向数组首个元素的地址。

创建数组

创建数组时,必须确定数组长度和类型。但如果储存的是基本类型,允许不赋初值(使用默认值)。

int[] arr = new int[4];                    // 方法一
int[] arr = {1,2,3,4};                     // 方法二
int[] arr = new int[]{1,2,3,4};            // 方法三Copy to clipboardErrorCopied

数组长度:在数组对象中,定义了 length 属性记录了数组长度。

int len = arr.length;                      // 返回数组长度  Copy to clipboardErrorCopied

Arrays 类

对数组进行操作的辅助类,实现了对数组的常用操作。

数组排序

sort 方法:可以对数组排序,默认数组数值从小到大排列,用户可以自定义排列顺序,

Arrays.sort(arr);                                     // 数组排序Copy to clipboardErrorCopied

数组复制

copyOf/copyOfRange 方法:复制数组。底层调用 System.arrayCopy 的本地方法实现,常用于数组扩容。

int[] arr1 = Arrays.copyOf(arr, 10);                  // 复制数组:前 10 个单位
int[] arr2 = Arrays.copyOf(arr, 0, arr.length);       // 复制数组:从 0 到 arr.length - 1Copy to clipboardErrorCopied

数组转化

asList 方法:将数组转化为列表(List 类),但数组数据必须是包装类型。

调用该方法将数组转换为列表后,在内存中实际还是以数组形式存储。这可能会导致以下两个问题:

  1. 调用 List 类的 add 方法向列表中插入数据,会导致异常;
  2. 对原数组进行更改,也会导致列表中的数据发生变化。
arr[] = new Integer[]{1, 2, 3, 4};                    // 数组必须是包装数据类型

List list = Arrays.asList(arr);                       // 将数组转换为集合(有问题)               
List list = new ArrayList<>(Arrays.asList(arr));      // 将数组转换为集合(推荐)  Copy to clipboardErrorCopied
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。