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. 福州大学软件工程1916 | W班 作业成绩排名汇总

    评分链接: 第一次作业-准备篇 https://www.cnblogs.com/deerCode/p/10527237.html 第二次作业-结对第一次-文献摘要热词统计原型设计 https://ww ...

  2. sql where 里面判定要加 ' '

    WHERE year>=2010 and year<=2017 and indicator_code = 'SE.XPD.TOTL.GD.ZS'

  3. python 名称前的单下划线

    单前导下划线 _var 1.特点一 在PEP8约定中定义,以单个下划线开头的变量或方法仅供内部使用.用于指定该名称属性为“私有”.为了使其他人(或你自己)使用这些代码时将会知道以“_”开头的名称只供内 ...

  4. Linux SPI初始化及接口函数代码细究

    2012-01-08 22:11:38 目的:我需要掌握spi驱动相关数据结构关系,及在哪部分函数中把这些数值进行底层寄存器赋值的.结合应用层函数完成spi驱动的代码测试.已达到灵活修改的目的. 按顺 ...

  5. PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)

    题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384 #include <iost ...

  6. 韩顺平Linux学习笔记

    第 一 章    Linux开山篇 1.1 Linux课程的内容介绍 1.2Linux的学习方向 1.2.1. Linux运维工程师:主要做大公司中的电脑系统维护,保证服务器的正常运行,如服务器的优化 ...

  7. GO函数

    函数定义 Go语言中定义函数使用func关键字. func 函数名(参数)(返回值){ 函数体 } 函数名:由字母.数字.下划线组成.但函数名的第一个字母不能是数字.在同一个包内,函数名也称不能重名( ...

  8. Git随笔 -- 初始化远程仓库

    1. 新建文件夹(作为本地仓库与之远程仓库关联),进入文件夹空白处右键选择Git Bash(安装程序下载).[或者在开始菜单里找到Git Bash并打开,使用命令进入文件夹:cd 文件夹名称.] 2. ...

  9. java内存机制和GC垃圾回收机制

    Java 内存区域和GC机制 转载来源于:https://www.cnblogs.com/zhguang/p/3257367.html 感谢 目录 Java垃圾回收概况 Java内存区域 Java对象 ...

  10. minSdkVersion

    10   It is indeed possible to increase minSdkVersion, but it took me way too much time to find it ou ...