如何使用Arrays工具类操作数组
介绍
我们要先知道Arrays 是什么。 java.util.Arrays 类是 JDK 提供的一个工具类主要用来操作数组,比如数组的复制转换等各种方法,Arrays 的方法都是静态方法可以通过Arrays.方法名称直接调用。本文主要分析一些常用的方法。
sort方法
sort方法主要用于排序,有一系列的重载方法不光支持7种数据类型,同时也支持Object和Comparator(比较器)

int
定义一个int数组,具体代码如下

输出结果:
[1, 3, 4, 5, 9, 21, 34, 35, 44]
String
如一下代码:

输出结果:
[A, B, C, D, F, K, Y]
asList
asList的主要作用就是返回由指定数组支持的ArraryList列表,asList是返回一个ArraryList但是这个ArraryList是Arrays 内部的ArraryList所以我们只能对其进行查看或者修改,但是不能进行添加或者删除操作。
下面来看个例子:

使用asList转换成ArraryList后修改是可以运行的。再看下面的例子

新增一个元素会抛出UnsupportedOperationException异常

这是为什么呢。看一下源码。

在上面说到asList是返回一个自己的内部类,然后这个内部类的话并没有去实现add方法,在调用add方法的时候会调用父类AbstractList里面的方法,所以说才会抛出UnsupportedOperationException可以看下面的源码

那如果要对返回的数组进行操作的话要怎么获取一个可以Add的List,非常简单,看以下例子

引用数据类型和基本数据类型的区别
说到这个可能大多人都不知道。我们来看一个例子。

这个例子非常简单,就是把两个数组转换成List集合。那我们输出一下。
输出结果:
String :7
int :1
看到这里就不禁有疑问了。问什么我第二个int数组有有五个属性但是输出的数量却是1呢?
先去看一下asList的源码。注意到asList方法是以下定义:
List asList(T... a)
asList方法接收一个可变参数,并且这个可变参数类型是作为泛型的参数。那么在Java中基本数据类型不能作为泛型的参数,数组是引用数据类型所以数组是可以泛型化,所以使用了int[]作为参数类型,而不是用int作为参数类型上面的方法如果补全的话应该是以下。
List<int[]> intList = Arrays.asList(intData);
那这个问题如何解决呢?
将int替换成包装类型即可

binarySearch
binarySearch用来查找元素。看下方例子

输出结果:
3
返回所在的下标。
copyOf
看下方例子

将intData的数据复制到int2中参数要指定新数组的长度。
输出结果:
[1, 2, 3, 4]
toString
在上方使用的例子用也介绍了toString主要就是用来输出数组。
主要就是这几个方法常用。欢迎转发关注。
如何使用Arrays工具类操作数组的更多相关文章
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第7节 Arrays工具类_16_数组工具类Array
在java.util的包下面.在这个包的下面是需要导包的,只有lang 的包下面是不需要导包的 查看jdk1.6的手册 Arrays让我们想起了数组,说明它提供了与数组相关的方法 我们可以看到 toS ...
- Arrays工具类
1.Arrays工具类针对数组进行操作的工具类 提供了排序查找等功能 2.方法: Arrays.toString(int[] a) 将数据转换成字符串 Arrays.sort(int[] a) 将数组 ...
- 浅谈集合框架六——集合扩展:Arrays工具类、集合与数组相互转换方式;
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...
- 二维数组及Arrays工具类
1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...
- java中的数组的Arrays工具类的使用
package day04.d1.shuzu; import java.util.Arrays; /** * Arrays 工具类 * @author Administrator * */public ...
- java 13-2 Arrays工具类
1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串 2:public static v ...
- Java基础知识强化62:Arrays工具类之概述和使用
1. Arrays工具类: Arrays这个类包含操作数组(比如排序和查找)的各种方法. 2. Arrays的方法: (1)toString方法:把数组转成字符串 public static Stri ...
- Java:集合,Arrays工具类用法
1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
随机推荐
- 大白话五种IO模型
目录 一.I/O模型介绍 二.阻塞I/O模型 2.1 一个简单的解决方案 2.2 该方案的问题 2.3 改进方案 2.4 改进后方案的问题 三.非阻塞I/O模型 3.1 非阻塞I/O实例 四.多路复用 ...
- k8s对象类资源格式
k8s api仅接受及响应json格式的数据,同时,为了便于使用,它也允许用户提供yaml格式的post对象,但apiserver需要事先自行将其转换为json格式后方能提交.每个资源通常仅接受并返回 ...
- Fabric1.4源码解析:链码实例化过程
之前说完了链码的安装过程,接下来说一下链码的实例化过程好了,再然后是链码的调用过程.其实这几个过程内容已经很相似了,都是涉及到Proposal,不过整体流程还是要说一下的. 同样,切入点仍然是fabr ...
- Junit4学习使用和总结
Junit4学习使用和总结 部分资料来源于网络 编辑于:20190710 一.Junit注解理解 1.@RunWith 首先要分清几个概念:测试方法.测试类.测试集.测试运行器.其中测试方法就是用@T ...
- BZOJ 2152:聪聪可可(树上点分治)
题目链接 题意 中文题意. 思路 和上一题类似,只不过cal()函数需要发生变化. 题目中要求是3的倍数,那么可以想到 (a + b) % 3 == 0 和 (a % 3 + b % 3) % 3 = ...
- centos7安装hadoop完全分布式集群
groupadd test //新建test工作组 useradd -g test phpq //新建phpq用户并增加到test工作组 userdel 选项 用 ...
- 开源:C# 代码自动生成工具,支持站点前后台
前言 写这个项目有很长一段时间了,期间也修修改改,写到最后,自己也没咋用(研究方向变化了). 正文 具体项目开源了:https://github.com/supperlitt/WebAutoCodeO ...
- Spring MVC源码(一) ----- 启动过程与组件初始化
SpringMVC作为MVC框架近年来被广泛地使用,其与Mybatis和Spring的组合,也成为许多公司开发web的套装.SpringMVC继承了Spring的优点,对业务代码的非侵入性,配置的便捷 ...
- 剑指offer第二版-2.实现单例模式
面试题2:实现单例模式 题目要求: 设计一个类,只能生成该类的一个实例. /** * 单例模式 * 定义:指实现了特殊模式的类,该类仅能被实例化一次,产生唯一的一个对象 * 应用举例:windows的 ...
- 洛谷P2172 [国家集训队]部落战争 题解
题目链接:https://www.luogu.org/problemnew/show/P2172 分析: 不要被[国家集训队]的标签吓到,其实这题不是很难. 本题可以对比P4304 [TJOI2013 ...