介绍

我们要先知道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 语言基础+高级_1-3-Java语言高级_1-常用API_1_第7节 Arrays工具类_16_数组工具类Array

    在java.util的包下面.在这个包的下面是需要导包的,只有lang 的包下面是不需要导包的 查看jdk1.6的手册 Arrays让我们想起了数组,说明它提供了与数组相关的方法 我们可以看到 toS ...

  2. Arrays工具类

    1.Arrays工具类针对数组进行操作的工具类 提供了排序查找等功能 2.方法: Arrays.toString(int[] a) 将数据转换成字符串 Arrays.sort(int[] a) 将数组 ...

  3. 浅谈集合框架六——集合扩展:Arrays工具类、集合与数组相互转换方式;

    最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...

  4. 二维数组及Arrays工具类

    1.二维数组 概念: 数组中的每一个元素类型都是一维数组 二维数组初始化方式: 静态初始化: 格式: 元素类型[][] 数组名 = new 元素类型[][]{{一维数组1},{一维数组2},{一维数组 ...

  5. java中的数组的Arrays工具类的使用

    package day04.d1.shuzu; import java.util.Arrays; /** * Arrays 工具类 * @author Administrator * */public ...

  6. java 13-2 Arrays工具类

    1.Arrays:针对数组进行操作的工具类.比如说排序和查找. 1:public static String toString(int[] a) 把数组转成字符串  2:public static v ...

  7. Java基础知识强化62:Arrays工具类之概述和使用

    1. Arrays工具类: Arrays这个类包含操作数组(比如排序和查找)的各种方法. 2. Arrays的方法: (1)toString方法:把数组转成字符串 public static Stri ...

  8. Java:集合,Arrays工具类用法

    1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...

  9. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

随机推荐

  1. QT MSVC编译中文乱码问题

    两种解决方案: 1,在文件头添加 #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif 注 ...

  2. python 查询 elasticsearch 常用方法(Query DSL)

    1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsearch(["localhost:9200"]) 2. ...

  3. Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  4. django基础知识之POST属性:

    POST属性 QueryDict类型的对象 包含post请求方式的所有参数 与form表单中的控件对应 问:表单中哪些控件会被提交? 答:控件要有name属性,则name属性的值为键,value属性的 ...

  5. vue中v-model的数据双向绑定(重要)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. DStream转为DF的两种方式(突破map时元组22的限制)

    在进行Spark Streaming的开发时,我们常常需要将DStream转为DataFrame来进行进一步的处理, 共有两种方式,方式一: val spark = SparkSession.buil ...

  7. 干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结

    目录 C# VS JAVA 基础语法类比篇: 一.匿名类 二.类型初始化 三.委托(方法引用) 四.Lambda表达式 五.泛型 六.自动释放 七.重写(override) ASP.NET CORE ...

  8. Ray-基础部分目录

    基础部分: 引言 Actor编写-ESGrain与ESRepGrain 消息发布器与消息存储器 Event编写 Handler之CoreHandler编写 Handler之ToReadHandler编 ...

  9. ISTQB TTA大纲中提到的参考书目

    在2012版大纲(可以点击这里下载查看)第12页"2.2条件测试"标题上方有这样一句话: 参考[Bath08],[Beizer90],[Beizer95],[Copeland03] ...

  10. 通过代数,数字,欧几里得平面和分形讨论JavaScript中的函数式编程

    本文是对函数式编程范式的系列文章从而拉开了与以下延续一个. 介绍 在JavaScript中,函数只是对象.因此,可以构造函数,作为参数传递,从函数返回或分配给变量.因此,JavaScript具有一流的 ...