Java中的Arrays类使用详解
来源:互联网 发布:执信软件 编辑:程序博客网 时间:2024/05/29 09:47
首先先创建一个打印数组的方法,方便后面直接使用
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 arrays public 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
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等这里就不介绍了,暂时用的少
本文地址:http://liuyanzhao.com/2863.html
转载请注明
- Java中的Arrays类使用详解
- 使用 Arrays 类操作 Java 中的数组
- 使用Arrays类操作Java中的数组
- 使用 Arrays 类操作 Java 中的数组
- 使用 Arrays 类操作 Java 中的数组
- 使用 Arrays 类操作 Java 中的数组
- 使用 Arrays 类操作 Java 中的数组
- 使用 Arrays 类操作 Java 中的数组
- JAVA中的Arrays类
- Java中的Arrays类
- java中的Arrays类
- java中的Arrays类
- Java中的Arrays类
- JAVA学习笔记(3)--Arrays类使用详解
- Arrays类应用·使用Arrays类操作Java中的数组
- Java-Arrays.asList()使用中的问题
- Java Arrays类的使用
- java Arrays类的使用
- 请问,为什么我直接在地址栏里输入文件夹,却不会自动跳转到文件夹下默认的index.html
- js中的循环遍历数组中的元素,ES6(for-of)、ES5(forEach、for-in)、通用(for(i=0;i<length;i++))
- Linux 下Crontab 里的命令无法执行的问题
- 系统架构札记
- CodeForces 631 C.Report(单调栈)
- Java中的Arrays类使用详解
- 自然语言处理——Pattern(pattern.vector)
- C++中TCP/IP按约定报文协议接收数据完成拼包
- 关于submit与异步提交的区别
- PHP笔记
- static关键字
- vue中如何动态的绑定图片,vue中通过data返回图片路径
- IE兼容性处理实例
- Java入侵检测系统(一)