📅  最后修改于: 2020-03-28 02:51:52             🧑  作者: Mango
java.util包中的Arrays类是Java Collection Framework的一部分。此类提供了静态方法来动态创建和访问Java数组。它仅由静态方法和Object类的方法组成。此类的方法可由类名称本身使用。
类层次结构:
java.lang.Object
↳ java.util.Arrays
类声明:
public class Arrays
extends Object
使用数组的语法:
Arrays.;
对Java-Arrays类的需求:
很多时候使用循环对数组执行某些任务,例如:
Arrays类提供了几种静态方法,这些方法可直接用于执行这些任务,而无需使用循环。
Java Array中的方法:
java.util包的Arrays类包含几个静态方法,可用于在数组中填充,排序,搜索等。这些是:
// Java展示使用
// Arrays.asList()
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 得到Array
int intArr[] = { 10, 20, 15, 22, 35 };
// 转化成数组
System.out.println("int数组转成list: "
+ Arrays.asList(intArr));
}
}
输出:
int数组转成list: [[I@232204a1]
// Java展示使用
// Arrays.binarySearch()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取Array
int intArr[] = { 10, 20, 15, 22, 35 };
Arrays.sort(intArr);
int intKey = 22;
System.out.println(intKey
+ " 被找到,index = "
+ Arrays
.binarySearch(intArr, intKey));
}
}
输出:
22 被找到,index = 3
// Java展示使用
// Arrays.binarySearch()方法·
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取Array
int intArr[] = { 10, 20, 15, 22, 35 };
Arrays.sort(intArr);
int intKey = 22;
System.out.println(
intKey
+ " 被找到,index = "
+ Arrays
.binarySearch(intArr, 1, 3, intKey));
}
}
输出:
22 被找到,index = -4
// Java展示
// Arrays.compare()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取Array
int intArr[] = { 10, 20, 15, 22, 35 };
// 获取第二个Array
int intArr1[] = { 10, 15, 22 };
// 比较两个arrays
System.out.println("整型数组比较: "
+ Arrays.compare(intArr, intArr1));
}
}
输出:
整型数组比较: 1
// Java展示
// Arrays.compareUnsigned()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取Arrays
int intArr[] = { 10, 20, 15, 22, 35 };
// 获取第二个Arrays
int intArr1[] = { 10, 15, 22 };
// 比较两个数组
System.out.println("比较两个数组: "
+ Arrays.compareUnsigned(intArr, intArr1));
}
}
输出:
比较两个数组: 1
// Java展示
// Arrays.copyOf()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 打印元素
System.out.println("整数数组: "
+ Arrays.toString(intArr));
System.out.println("\n使用copyOf的新数组:\n");
System.out.println("整数数组: "
+ Arrays.toString(
Arrays.copyOf(intArr, 10)));
}
}
输出:
整数数组: [10, 20, 15, 22, 35]
使用copyOf的新数组:
整数数组: [10, 20, 15, 22, 35, 0, 0, 0, 0, 0]
// Java展示使用
// Arrays.copyOfRange()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 打印元素
System.out.println("整型数组: "
+ Arrays.toString(intArr));
System.out.println("\n新数组被copyOfRange创建:\n");
// To copy the array into an array of new length
System.out.println("整型数组: "
+ Arrays.toString(
Arrays.copyOfRange(intArr, 1, 3)));
}
}
输出:
整型数组: [10, 20, 15, 22, 35]
新数组被copyOfRange创建:
整型数组: [20, 15]
// Java展示使用
// Arrays.deepEquals()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[][] = { { 10, 20, 15, 22, 35 } };
// 获取第二个数组
int intArr1[][] = { { 10, 15, 22 } };
// 比较两数组
System.out.println("两个数组比较: "
+ Arrays.deepEquals(intArr, intArr1));
}
}
输出:
两个数组比较: false
// Java展示使用
// Arrays.deepHashCode()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[][] = { { 10, 20, 15, 22, 35 } };
// 返回深层的哈希码
System.out.println("整型数组: "
+ Arrays.deepHashCode(intArr));
}
}
输出:
整型数组: 38475344
// Java展示使用
// Arrays.deepToString()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[][] = { { 10, 20, 15, 22, 35 } };
// 返回指定Array的“深层内容"的字符串表示形式
System.out.println("整型数组: "
+ Arrays.deepToString(intArr));
}
}
输出:
整型数组: [[10, 20, 15, 22, 35]]
// Java展示使用
// Arrays.equals()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 获取第二个数组
int intArr1[] = { 10, 15, 22 };
// 比较两个数组
System.out.println("比较两个数组: "
+ Arrays.equals(intArr, intArr1));
}
}
输出:
比较两个数组: false
// Java展示使用
// Arrays.fill()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组s
int intArr[] = { 10, 20, 15, 22, 35 };
int intKey = 22;
Arrays.fill(intArr, intKey);
// 填充数组
System.out.println("填充后的数组: "
+ Arrays.toString(intArr));
}
}
输出:
填充后的数组: [22, 22, 22, 22, 22]
// Java展示使用
// Arrays.hashCode()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 返回此数组实例的整数hashCode。
System.out.println("整型数组: "
+ Arrays.hashCode(intArr));
}
}
输出:
整型数组: 38475313
// Java展示使用
// Arrays.mismatch()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 获取第二个数组
int intArr1[] = { 10, 15, 22 };
// 比较两个数组
System.out.println("第一个不匹配的index: "
+ Arrays.mismatch(intArr, intArr1));
}
}
输出:
第一个不匹配的index: 1
// Java展示使用
// Arrays.parallelSort()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 使用parallelSort对数组排序
Arrays.parallelSort(intArr);
System.out.println("整型数组: "
+ Arrays.toString(intArr));
}
}
输出:
整型数组: [10, 15, 20, 22, 35]
// Java展示使用
// Arrays.sort()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 生序排序
Arrays.sort(intArr);
System.out.println("整型数组: "
+ Arrays.toString(intArr));
}
}
输出:
整型数组: [10, 15, 20, 22, 35]
// Java展示使用
// Arrays.sort()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 排序数组
Arrays.sort(intArr, 1, 3);
System.out.println("整型数组: "
+ Arrays.toString(intArr));
}
}
输出:
整型数组: [10, 15, 20, 22, 35]
// Java展示使用Comparator
import java.util.*;
import java.lang.*;
import Java.io.*;
// student类
class Student {
int rollno;
String name, address;
// 构造函数
public Student(int rollno, String name,
String address)
{
this.rollno = rollno;
this.name = name;
this.address = address;
}
// 在main()当中,打印student信息
public String toString()
{
return this.rollno + " "
+ this.name + " "
+ this.address;
}
}
class Sortbyroll implements Comparator {
// 生序排序
public int compare(Student a, Student b)
{
return a.rollno - b.rollno;
}
}
// 测试代码
class Main {
public static void main(String[] args)
{
Student[] arr = { new Student(111, "bbbb", "london"),
new Student(131, "aaaa", "nyc"),
new Student(121, "cccc", "jaipur") };
System.out.println("Unsorted");
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
Arrays.sort(arr, 1, 2, new Sortbyroll());
System.out.println("\nSorted by rollno");
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
}
}
输出:
Unsorted
111 bbbb london
131 aaaa nyc
121 cccc jaipur
Sorted by rollno
111 bbbb london
131 aaaa nyc
121 cccc jaipur
// Java展示使用 Comparator
import java.util.*;
import java.lang.*;
import Java.io.*;
// student类
class Student {
int rollno;
String name, address;
// 构造函数
public Student(int rollno, String name,
String address)
{
this.rollno = rollno;
this.name = name;
this.address = address;
}
// 在main()打印student信息
public String toString()
{
return this.rollno + " "
+ this.name + " "
+ this.address;
}
}
class Sortbyroll implements Comparator {
// 生序排序
public int compare(Student a, Student b)
{
return a.rollno - b.rollno;
}
}
// 测试代码
class Main {
public static void main(String[] args)
{
Student[] arr = { new Student(111, "bbbb", "london"),
new Student(131, "aaaa", "nyc"),
new Student(121, "cccc", "jaipur") };
System.out.println("Unsorted");
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
Arrays.sort(arr, new Sortbyroll());
System.out.println("\nSorted by rollno");
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
}
}
输出:
Unsorted
111 bbbb london
131 aaaa nyc
121 cccc jaipur
Sorted by rollno
111 bbbb london
121 cccc jaipur
131 aaaa nyc
// Java展示使用
// Arrays.spliterator()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 排序数组
System.out.println("整数数组: "
+ Arrays.spliterator(intArr));
}
}
输出:
Integer Array: java.util.Spliterators$IntArraySpliterator@232204a1
// Java展示使用
// Arrays.spliterator()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 常规方法排序
System.out.println("整数数组: "
+ Arrays.spliterator(intArr, 1, 3));
}
}
输出:
整数数组: java.util.Spliterators$IntArraySpliterator@232204a1
// Java展示使用
// Arrays.stream()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 从数组得到stream
System.out.println("整数数组: "
+ Arrays.stream(intArr));
}
}
输出:
整数数组: java.util.stream.IntPipeline$Head@4aa298b7
// Java展示使用
// Arrays.toString()方法
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
// 获取数组
int intArr[] = { 10, 20, 15, 22, 35 };
// 打印元素
System.out.println("数组: "
+ Arrays.toString(intArr));
}
}
输出:
数组: [10, 20, 15, 22, 35]