1. 简介

Arrays类包含用于操作数组的各种方法(例如排序和搜索)。此类还包含一个静态工厂,允许将数组视为列表。

如果指定的数组引用为null,则此类中的方法都抛出NullPointerException,除非另有说明。

2. 方法说明

List<T>  asList(T... a):返回由指定数组构成的大小固定的列表,该列表不能使用add和remove方法改变长度

int binarySearch(Object[] a, Object key):使用二分查找元素的索引

T[] copyOfRange(T[] original, int from, int to):复制数组,并且指定开始/结束索引

T[] copyOf(T[] original, int newLength):复制数组,并且指定复制长度

void fill(Object[] a, Object val):使用指定元素填充数组

void fill(Object[] a, int fromIndex, int toIndex, Object val):使用指定数组填充数组,并且指定填充的开始/结束索引

void sort(Object[] a):对数组排序,需要实现数组元素的Comparable接口

void sort(Object[] a, int fromIndex, int toIndex):对指定开始/结束索引的数组排序,需要实现数组元素的Comparable接口

void sort(T[] a, Comparator<? super T> c):对数组排序,需要实现数组元素的Comparator接口

void sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c):对指定开始/结束索引的数组排序,需要实现数组元素的Comparator接口

String toString(Object[] a):数组转字符串

static Stream<T> stream(T[] array):数组转为流

static IntStream stream(int[] array):int数组转为流,还有DoubleStream和LongStream

3. 简单示例

 /*
*二分查找仅适用于有序的数组
* */ import java.util.*;
import java.util.stream.Stream; public class ArraysFunc {
public static void main(String[] args){ String[] arr1 = new String[]{"a","b","b","d","c"}; //数组转成长度固定的列表,不能使用add和remove方法改变list长度
List<String> list1 = Arrays.asList(arr1);
System.out.println(list1); // [a, b, b, d, c] //使用二分查找元素索引
int index = Arrays.binarySearch(arr1,"b");
System.out.println(index); // 2 // 复制指定开始/结束位置的数组(不包含结尾)
String[] arr2 = Arrays.copyOfRange(arr1, 1,3);
System.out.println(Arrays.asList(arr2)); // [b, b] //复制指定长度的数组(索引从0开始)
String[] arr3 = Arrays.copyOf(arr1,3);
System.out.println(Arrays.asList(arr3)); // [a, b, b] // 判断数组是否等价
boolean flag1 = Arrays.equals(arr1,arr2);
System.out.println(flag1); // false // 对数组填充指定元素,可指定范围(不包含结尾)
Arrays.fill(arr3,"e");
System.out.println(Arrays.asList(arr3)); // [e, e, e]
Arrays.fill(arr3,0,2,"f");
System.out.println(Arrays.asList(arr3)); // [f, f, e] // 对数组排序
Arrays.sort(arr1);
System.out.println(Arrays.asList(arr1)); // [a, b, b, c, d] // 将数组变成字符串,保留完整符号
String str1 = Arrays.toString(arr1);
System.out.println(str1); // [a, b, b, c, d] // stream,可以用于数组类型转换
String str = "1 3 2 5 6 4";
String[] strArray = str.split(" ");
Stream<String> stringStream = Arrays.stream(strArray);
int[] intArray = Arrays.stream(strArray).mapToInt(Integer::parseInt).toArray();
int[] intArr = Stream.of(strArray).mapToInt(Integer::parseInt).toArray();
}
}

4. 说明

4.1 使用Arrays.binarySearch()方法时,需要注意数组要是有序的,否则将会无法得到自己想要的结果。

这是由于该方法使用二分查找法实现。

4.2 使用Arrays.sort()方法时,对于自定义元素需要实现Comparable或者Comparator接口。

关于两接口的实现参考如下:https://www.cnblogs.com/jfl-xx/p/10656433.html

!!!

java Arrays常用方法的更多相关文章

  1. Java学习笔记之——String和Arrays常用方法

    一.String常用方法 1.subString(int beginIndex,int endIndex) 截取字符串 从beginIndex开始截取,截取endIndex-beginIndex的长度 ...

  2. Java Arrays Tutorial (3)

    Java Arrays Tutorial (3) Data types have a specific set of values. A byte cannot hold a value larger ...

  3. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

    1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...

  4. Java Arrays.sort源代码解析

    前提: 当用到scala的sortWith,发现: def sortWith(lt: (A, A) ⇒ Boolean): List[A] // A为列表元素类型 根据指定比较函数lt进行排序,且排序 ...

  5. java Map常用方法封装

      java Map常用方法封装 CreationTime--2018年7月16日15点59分 Author:Marydon 1.准备工作 import java.util.HashMap; impo ...

  6. java Arrays.asList用法

    java Arrays.asList用法 用途 Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁. 注意 Arrays.asLi ...

  7. Java Arrays.sort相关用法与重载

    Java Arrays.sort() Java中的数组排序函数, 头文件 import java.util.Arrays; 相关API Arrays.sort(arys[]) Arrays.sort( ...

  8. java Arrays数组

    1.java.util.Arrays 工具类的使用Arrays 类中的常用方法1) toString()打印数组2) equals()比较两个数组是否相同3) copyOf(…)复制指定的数组 (效率 ...

  9. Top 10 Methods for Java Arrays

    作者:X Wang 出处:http://www.programcreek.com/2013/09/top-10-methods-for-java-arrays/ 转载文章,转载请注明作者和出处 The ...

随机推荐

  1. Oracle 体系结构chapter2

    前言:Oracle 体系结构其实就是指oracle 服务器的体系结构,数据库服务器主要由三个部分组成 管理数据库的各种软件工具(sqlplus,OEM等),实例(一组oracle 后台进程以及服务器中 ...

  2. tomcat+nginx实现

    这里采用tomcat安装包 tomcat 版本说明:  9.0.17 nginx   版本说明: 1.14.2 jdk      版本说明:  1.8.0 创建目录 [root@web02 /]# m ...

  3. DataGridView 列排序 内存表查找

    DataRow[] drow = dt.Select("列名 = 列名的值" ); 就这句话,dt是一个datatable 且断点调试时能看到里面有trade这个列,可为什么执行到 ...

  4. SpringBoot+Thymeleaf问题

    springboot在controller返回数据到thymeleaf报404 用springboot做一个例子,访问controller可以返回数据,但是到thymeleaf却报404, 检查发现路 ...

  5. Docker+Teamcity+Maven+SVN搭建持续集成环境

    这是使用Jenkins作为CI/CD工具,Teamcity的作用是相同的.

  6. php 加密解密算法 用于数据传输

    /** * 加密方法 * @param string $data 要加密的字符串 * @param string $key 加密密钥 * @param int $expire 过期时间 (单位:秒) ...

  7. python:threading.Thread类的使用详解

    Python Thread类表示在单独的控制线程中运行的活动.有两种方法可以指定这种活动: 1.给构造函数传递回调对象 mthread=threading.Thread(target=xxxx,arg ...

  8. linux普通帐号可以临时切换到root(添加用户到sudoers中)

    一般,进入terminal之后,默认是普通账户能操作的功能,能访问的目录有限,需要临时切换到root账户 那么此时就需要配置sudoers文件,可以让普通用户通过sudo命令临时切换到root账户 首 ...

  9. layui 单选项 点击显示与隐藏

    同一个页面有多个单选按钮:https://blog.csdn.net/haibo0668/article/details/86220767

  10. 物理层PHY 和 网络层MAC

    PHY模块简介 物理层位于OSI最底层,物理层协议定义电气信号.线的状态.时钟要求.数据编码和数据传输用的连接器. 物理层的器件称为PHY. 上图里的灰色方框图里的就是PHY芯片内部模块图. MAC器 ...