专栏首页Java系列文章如何使用Arrays工具类操作数组

如何使用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方法是以下定义:

<T> List<T> 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主要就是用来输出数组。

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

本文分享自微信公众号 - 乱敲代码(gh_baf1250e9b02),作者:乱敲代码

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot如何优雅的校验参数

    做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的。如果参数比较少的话还是容易 处理的一但参数比...

    乱敲代码
  • 如何设计好的RESTful API

    现阶段的开发模式多以前后端分离形式存在,前后端开发人员需要通过大量 API 来进行数据交互,如果在交互过程中前后端人员经常遭遇如下问题:

    乱敲代码
  • ThreadLocal可以解决并发问题吗

    到底什么是线程的不安全?为什么会存在线程的不安全?线程的不安全其实就是多个线程并发的去操作同一共享变量没用做同步所产生意料之外的结果。那是如何体现出来的呢?我们...

    乱敲代码
  • 如何使用Arrays工具类操作数组

    我们要先知道Arrays 是什么。 java.util.Arrays 类是 JDK 提供的一个工具类主要用来操作数组,比如数组的复制转换等各种方法,Arrays...

    码农小胖哥
  • 错误提示之(MVC3.0):HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确 MVC误设起始页

    MVC3.0框架开发项目: 有时在程序运行的时候会出现“HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检...

    hbbliyong
  • 第130天:移动端-rem布局

    当拿到设计师给的UI设计图,前端的首要任务就是布局和样式,相信这对于大部分前端工程师来说已经不是什么难题了。移动端的布局相对PC较为简单,关键在于对不同设备的适...

    半指温柔乐
  • Jboot教程(二)

    南风
  • 使用.net core ABP和Angular模板构建博客管理系统(实现博客列表页面)

    易兒善
  • Jboot教程(二)

    在上一篇教程中代码Demo中在使用了renderText方法,它是渲染器的一种方式,JBoot中有很多种渲染器,如下:

    南风
  • 【资讯】甲骨文推出大数据SQL今年秋季上市

    企业正在寻求以创新方式管理尽可能多的数据及数据源。尽管Hadoop、NoSQL等技术提供了应对大数据问题的具体方法,但是这些技术却可能引入数据孤岛,导致形成关键...

    小莹莹

扫码关注云+社区

领取腾讯云代金券