博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java学习笔记之十二】Java8增强的工具类:Arrays的用法整理总结
阅读量:4977 次
发布时间:2019-06-12

本文共 3207 字,大约阅读时间需要 10 分钟。

本文将整理 java.util.Arrays 工具类比较常用的方法: 

本文介绍的方法基于JDK 1.7 之上。 
1.  asList方法  

@SafeVarargs    public static 
List
asList(T... a) { return new ArrayList<>(a); }

   使用该方法可以返回一个固定大小的List,如: 

List
stringList = Arrays.asList("Welcome", "To", "Java", "World!"); List
intList = Arrays.asList(1, 2, 3, 4);

   

2. binarySearch方法 
binarySearch方法支持在整个数组中查找,如: 

int index = Arrays.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7 }, 6);

以及在某个区间范围内查找, 如: 

public static int binarySearch(int[] a, int fromIndex, int toIndex, int key) { rangeCheck(a.length, fromIndex, toIndex); return binarySearch0(a, fromIndex, toIndex, key); }
int index = Arrays.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7 }, 1, 6, 6);

3. copyOf及copyOfRange方法 

如: 

String[] names2 = { "Eric", "John", "Alan", "Liz" }; //[Eric, John, Alan] String[] copy = Arrays.copyOf(names2, 3); //[Alan, Liz] String[] rangeCopy = Arrays.copyOfRange(names2, 2, names2.length);

4. sort方法 

String[] names = { "Liz", "John", "Eric", "Alan" }; //只排序前两个 //[John, Liz, Eric, Alan] Arrays.sort(names, 0, 2); //全部排序 //[Alan, Eric, John, Liz] Arrays.sort(names);

另外,Arrays的sort方法也可以结合比较器,完成更加复杂的排序。 

public static 
void sort(T[] a, Comparator
c) { if (LegacyMergeSort.userRequested) legacyMergeSort(a, c); else TimSort.sort(a, c); }

5. toString方法 

Arrays的toString方法可以方便我们打印出数组内容。 
如: 

String[] names = { "Liz", "John", "Eric", "Alan" }; Arrays.sort(names); System.out.println(Arrays.toString(names));

控制台将打印出 [Alan, Eric, John, Liz] 

6. deepToString方法 
如果需要打印二维数组的内容: 
int[][] stuGrades = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } }; 
如果直接用

System.out.println(Arrays.toString(stuGrades));

那么得到的结果类似于 

     [[I@35ce36, [I@757aef, [I@d9f9c3]} 
这个时候得用 deepToString 方法才能得到正确的结果[[80, 81, 82], [84, 85, 86], [87, 88, 89]] 

System.out.println(Arrays.deepToString(stuGrades));

7. equals方法 

使用Arrays.equals来比较1维数组是否相等。 

String[] names1 = { "Eric", "John", "Alan", "Liz" }; String[] names2 = { "Eric", "John", "Alan", "Liz" }; System.out.println(Arrays.equals(names1, names2));

8. deepEquals方法 

Arrays.deepEquals能够去判断更加复杂的数组是否相等。 

int[][] stuGrades1 = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } }; int[][] stuGrades2 = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } }; System.out.println(Arrays.deepEquals(stuGrades1, stuGrades2));

9. fill方法 

int[] array1 = new int[8]; Arrays.fill(array1, 1); //[1, 1, 1, 1, 1, 1, 1, 1] System.out.println(Arrays.toString(array1));

以下将举例介绍几种常用的方法:

1.java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:

2. 给数组赋值:通过fill方法。

3. 对数组排序:通过sort方法,按升序。

4.比较数组:通过equals方法比较数组中元素值是否相等。

5. 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

1 import java.util.Arrays; 2 3 public class TestArrays { 4 5 public static void output(int[] array) { 6 7 if (array!=null) { 8 9 for (int i = 0; i < array.length; i++) { 10 11 System.out.print(array[i]+" "); 12 13 } 14 15 } 16 17 System.out.println(); 18 19 } 20 21 public static void main(String[] args) { 22 23 int[] array = new int[5]; 24 25 //填充数组 26 27 Arrays.fill(array, 5); 28 29 System.out.println("填充数组:Arrays.fill(array, 5):"); 30 31 TestArrays.output(array); 32 33 34 35 //将数组的第2和第3个元素赋值为8 36 37 Arrays.fill(array, 2, 4, 8);

转载于:https://www.cnblogs.com/DWVictor/p/10507601.html

你可能感兴趣的文章
[Voice communications] 声音的滤波
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
[SDOI2008]洞穴勘测
查看>>
Difference between Linearizability and Serializability
查看>>
IDEA使用操作文档
查看>>
UIView
查看>>
添加日期选择控件
查看>>
bzoj4765: 普通计算姬 (分块 && BIT)
查看>>
看完漫画秒懂区块链
查看>>
Oracle命令类别
查看>>
stc12c5a60s2驱动TEA5767收音机模块硬件调试总结
查看>>
vue中提示$index is not defined
查看>>
css选择器
查看>>
ASP.NET上传下载文件
查看>>
Galaxy Nexus 全屏显示-隐藏Navigation Bar
查看>>
Spring中使用Velocity模板
查看>>
上周热点回顾(8.18-8.24)
查看>>
Feature toggle
查看>>
day02
查看>>
gvim 配置Pydiction
查看>>