转载来自:https://blog.csdn.net/liu_yanzhao/article/details/70847050

首先先创建一个打印数组的方法,方便后面直接使用

public static void output(int []a) {for(int i=0;i<a.length;i++) {System.out.printf(a[i]+" ");}System.out.println();
}

1、填充数组:fill

eg1.

int []arr = new int[5];
Arrays.fill(arr, 2);
output(arr);

结果是:2 2 2 2 2
分析:给所有值赋值2
eg2.

int []arr = new int[5];
Arrays.fill(arr, 1,3,8);
output(arr);

结果是:0 8 8 0 0
分析:给第1位(0开始)到第3位(不包括)赋值8

2、数组元素排序:sort

eg1.

int []arr = {3,2,1,5,4};
Arrays.sort(arr);
output(arr);

结果是:1 2 3 4 5
分析:给所有数按升序排序
eg2.

int []arr = {3,2,1,5,4};
Arrays.sort(arr,1,3);
output(arr);

结果是:3 1 2 5 4
分析:给第1位(0开始)到第3位(不包括)排序

3、比较数组元素是否相等:equals

int []arr1 = {1,2,3};
int []arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1,arr2));

结果是:true
分析:如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。
这里补充一下,如果还是不用Arrays.equals,那么我们应该如何重写equals来比较两个数组的元素是否相等呢?这里提供一段代码

//Compare the contents of two int arrayspublic static boolean isEquals(int[] a, int[] b){if( a == null || b == null ){return false;}if(a.length != b.length){return false;}for(int i = 0; i < a.length; ++i ){if(a[i] != b[i]){return false;}}return true;}

4、二分查找法找指定元素的索引值(下标):binarySearch

数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置
eg1:

int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 20));

结果是:1
分析:能找到该元素,返回下标为1(0开始)
eg2:

int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 35));

结果是:-4
分析:找不到元素,返回-x,从-1开始数,如题,返回-4
eg3:

int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,30));

结果是:2
分析:从0到3位(不包括)找30,找到了,在第2位,返回2
eg4:

int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,40));

结果是:-4
分析:从0到3位(不包括)找40,找不到,从-1开始数,返回-4

5、截取数组:copeOf和copeOfRange

eg1: copy

int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOf(arr, 3);
output(arr1);

结果:10 20 30
分析:截取arr数组的3个元素赋值给姓数组arr1

int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3);
output(arr1);

eg2: copyOfRange

int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3);
output(arr1);

结果:20 30
分析:从第1位(0开始)截取到第3位(不包括)

6、其他

还有hashCode,toString,clone等这里就不介绍了,暂时用的少

Java中的Arrays类使用详解相关推荐

  1. Java中的StringBuilder类功能详解

    字符串是Java程序中最常用的一种数据结构之一.在Java中的String类已经重载的"+".也就是说,字符串可以直接使用"+"进行连接,如下面代码所示: St ...

  2. Java中Lambda表达式使用及详解

    Java中Lambda表达式使用及详解 前言 一.Lambda表达式的简介 Lambda表达式(闭包):java8的新特性,lambda运行将函数作为一个方法的参数,也就是函数作为参数传递到方法中.使 ...

  3. Java中的异常和处理详解

    Java中的异常和处理详解 参考文章: (1)Java中的异常和处理详解 (2)https://www.cnblogs.com/lulipro/p/7504267.html 备忘一下.

  4. Arrays类常用方法详解

    Java-Arrays类常用方法详解 一.Arrays类的定义 Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法二.Arrays类的常用方法 1.Arrays.asList( ...

  5. [转载] java中接口(interface)详解

    参考链接: Java接口Interfaces 接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. ...

  6. Java利器之UML类图详解

    前言 UML(Unified Modeling Language)中文统一建模语言,是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法.UML展现了 ...

  7. java中接口(interface)详解

    接口(interface) 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 接口(interface)是抽象方法和常量值 ...

  8. java中static修饰函数_详解java中static关键词的作用

    在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...

  9. java中使用poi导出Excel详解,kotlin音标

    到这个问题,可以设置encoding为双字节.POI可以到www.apache.org下载到. 编译好的jar主要有这样4个:poi包, poi Browser包, poi hdf包, poi hss ...

  10. java中的setattribute_JSP request.setAttribute()详解及实例

    javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; ...

最新文章

  1. Android和IOS 调用 支付宝和微信 支付方法
  2. python报表_Python生成报表
  3. Linux《命令行大全》——前言
  4. 如何从rpm包中提取文件
  5. 01-eclipse打包运行程序总是报错java.lang.NoClassDefFoundError和ava.lang.ClassNotFoundException(打包原理)
  6. eclipse中添加svn插件
  7. 深入理解 C 语言的函数调用过程
  8. junit.framework.AssertionFailedError: No tests found in错误解决办法
  9. C++全局函数与成员函数的区别
  10. 《编写可维护的JavaScript》——JavaScript编码规范(七)
  11. 十二进制转十进制-练习
  12. 2019年第二阶段我要变强个人训练赛第十五场
  13. VC删除IE缓存、COOKIE及浏览记录
  14. 测试ios软件开发,iOS开发中的测试框架
  15. OpenCV:对图像的位操作bitwise_and(与),bitwise_or(或),bitwise_not(非),bitwise_xor(异或)
  16. VMware虚拟机安装Linux系统(详细版)
  17. 创建一个动态空间存储未知大小的二维数组
  18. 毕业设计分享----基于Java的个性化博客空间的设计与实现
  19. 计算机学业水平考试反思总结8百,考试反思总结范文(精选5篇)
  20. 车联网路侧设施设置指南

热门文章

  1. VS2010 让你的Javascript代码可以折叠
  2. 树形目录生成器.bat
  3. JDK和CGLIB生成动态代理类的区别
  4. win10+eclipse+hadoop2.6.0 开发环境
  5. 一条SQL语句查询出成绩名次 排名 (转)
  6. JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器
  7. 我只能说,Spring Data REST真的很燥辣
  8. Linux中的静态库和动态库简介及生成过程示例
  9. 大学的最后一年有一门课程叫“人生”。
  10. 如何让内容页调用样式表?