介绍

我们要先知道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主要就是用来输出数组。

主要就是这几个方法常用。欢迎转发关注。

最新文章

  1. iOS AutoLayout自动布局&amp;Masonry介绍与使用实践
  2. 计数排序-java
  3. three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)
  4. ResponsiveSlides.js 幻灯片实例演示
  5. zip压缩
  6. hdu 5738 2016 Multi-University Training Contest 2 Eureka 计数问题(组合数学+STL)
  7. Scala中的Extractor
  8. C++ 类的前向声明
  9. InnoDB这种行锁实现特点意味者:只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁!
  10. 查询Linux系统最后重启时间的三个方法
  11. 树状jquery导航条
  12. Android学好Shape不再依赖美工
  13. Python_shelve模块
  14. [ 中危 ] dp意见反馈处存储型XSS
  15. Caffe2的安装
  16. c# 淘宝运单查询
  17. Liferay中request
  18. 4. Median of Two Sorted Arrays *HARD* -- 查找两个排序数组的中位数(寻找两个排序数组中第k大的数)
  19. 蓝桥杯-k倍区间
  20. opencv2 直方图之calchist函数使用(转)

热门文章

  1. 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
  2. 【深入浅出-JVM】(34):CMS 回收器
  3. Zeppelin 0.6.2使用Spark的yarn-client模式
  4. UVA297 四分树 Quadtrees 题解
  5. Excel催化剂开源第6波-Clickonce部署之自动升级瘦身之术
  6. 数据挖掘之KMeans算法应用与简单理解
  7. 基于tcp协议的登录,文件上传和下载
  8. 利用TCP协议,实现基于Socket的小聊天程序(初级版)
  9. 灵活使用Maven Profile
  10. WPF滑块控件(Slider)的自定义样式