sort()方法:将数组按升序排列
import java.util.Arrays;
public class ArraysSort { public static void main(String[] args) { int[] array = new int[] {10,9,8,7,6,5,4,3,2,1}; int[] temp = {10,9,8,7,6,5,4,3,2,1}; Arrays.sort(array); Arrays.sort(temp, 2, 6); for(int i = 0; i < array.length; i ++) System.out.print(array[i] + " "); System.out.println(); for (int t : temp) System.out.print(t + " "); System.out.println(); } } |
输出结果:
1 2 3 4 5 6 7 8 9 10
10 9 5 6 7 8 4 3 2 1
JDK文档:
static void | sort(byte[] a) | |
static void | sort(byte[] a, int fromIndex, int toIndex) | |
static void | sort(char[] a) | |
static void | sort(char[] a, int fromIndex, int toIndex) | |
static void | sort(double[] a) | |
static void | sort(double[] a, int fromIndex, int toIndex) | |
static void | sort(float[] a) | |
static void | sort(float[] a, int fromIndex, int toIndex) | |
static void | sort(int[] a) | |
static void | sort(int[] a, int fromIndex, int toIndex) | |
static void | sort(long[] a) | |
static void | sort(long[] a, int fromIndex, int toIndex) | |
static void | ||
static void | sort(Object[] a, int fromIndex, int toIndex) | |
static void | sort(short[] a) | |
static void | sort(short[] a, int fromIndex, int toIndex) | |
static
| sort(T[] a, Comparator<? super T> c) | |
static
| sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c) |
binarySearch()方法
import java.util.Scanner; import java.util.Arrays;
public class ArraysBinarySearch { public static void main(String[] args) { int[] array = {10,9,8,7,6,5,4,3,2,1}; Scanner scanner = new Scanner(System.in); System.out.print("Please input a integer" + " from 1 to 10:"); int input = scanner.nextInt(); int find = -1; find = Arrays.binarySearch(array, input); if (find > -1) System.out.println(input + "索引位置:" + find); else System.out.println(input + " not exist"); } } |
输出结果:
Please input a integer from 1 to 10:5
5 not exist
*在调用binarySearch()之前必须对数组进行排序,不然会引起结果的不确定。
import java.util.Scanner; import java.util.Arrays;
public class ArraysBinarySearch { public static void main(String[] args) { //int[] array = {10,9,8,7,6,5,4,3,2,1}; int[] array = {1,2,3,4,5,6,7,8,9,10}; Scanner scanner = new Scanner(System.in); System.out.print("Please input a integer" + " from 1 to 10:"); int input = scanner.nextInt(); int find = -1; find = Arrays.binarySearch(array, input); if (find > -1) System.out.println(input + "索引位置:" + find); else System.out.println(input + " not exist"); } } |
输出结果:
Please input a integer from 1 to 10:5
5索引位置:4
import java.util.Scanner; import java.util.Arrays;
public class ArraysBinarySearch { public static void main(String[] args) { int[] array = {10,9,8,7,6,5,4,3,2,1}; Arrays.sort(array); Scanner scanner = new Scanner(System.in); System.out.print("Please input a integer" + " from 1 to 10:"); int input = scanner.nextInt(); int find = -1; find = Arrays.binarySearch(array, input); if (find > -1) System.out.println(input + "索引位置:" + find); else System.out.println(input + " not exist"); } } |
输出结果:
Please input a integer from 1 to 10:4
4索引位置:3
JDK文档:
static
| asList(T... a) | |
static int | binarySearch(byte[] a, byte key) | |
static int | binarySearch(char[] a, char key) | |
static int | binarySearch(double[] a, double key) | |
static int | binarySearch(float[] a, float key) | |
static int | binarySearch(int[] a, int key) | |
static int | binarySearch(long[] a, long key) | |
static int | binarySearch(Object[] a, Object key) | |
static int | binarySearch(short[] a, short key) | |
static
| binarySearch(T[] a, T key, Comparator<? super T> c) |
fill()方法
import java.util.Arrays; public class ArraysFill { public static void main(String[] args) { int[] array1 = new int[10]; int[] array2 = new int[10]; Arrays.fill(array1, 5); Arrays.fill(array2, 2, 6, 2); for (int arr : array1) System.out.print(arr + " "); System.out.println(); for (int arr : array2) System.out.print(arr + " "); System.out.println(); } } |
输出结果:
5 5 5 5 5 5 5 5 5 5
0 0 2 2 2 2 0 0 0 0
JDK文档:
static void | fill(boolean[] a, boolean val) |
static void | fill(boolean[] a, int fromIndex, int toIndex, boolean val) |
static void | fill(byte[] a, byte val) |
static void | fill(byte[] a, int fromIndex, int toIndex, byte val) |
static void | fill(char[] a, char val) |
static void | fill(char[] a, int fromIndex, int toIndex, char val) |
static void | fill(double[] a, double val) |
static void | fill(double[] a, int fromIndex, int toIndex, double val) |
static void | fill(float[] a, float val) |
static void | fill(float[] a, int fromIndex, int toIndex, float val) |
static void | fill(int[] a, int val) |
static void | fill(int[] a, int fromIndex, int toIndex, int val) |
static void | fill(long[] a, int fromIndex, int toIndex, long val) |
static void | fill(long[] a, long val) |
static void | fill(Object[] a, int fromIndex, int toIndex, Object val) |
static void | fill(Object[] a, Object val) |
static void | fill(short[] a, int fromIndex, int toIndex, short val) |
static void | fill(short[] a, short val) |
import java.util.Arrays;
public class ArrayEquals { public static void main(String[] args) { int[] array1 = new int[5]; int[] array2 = new int[5]; int[] array3 = new int[5]; int[] array4 = new int[10];
Arrays.fill(array1, 2); Arrays.fill(array2, 2); Arrays.fill(array3, 3); Arrays.fill(array4, 2);
System.out.println(Arrays.equals(array1,array2)); System.out.println(Arrays.equals(array1, array3)); System.out.println(Arrays.equals(array1, array4)); } } |
输出结果:
true
false
false
JDK文档:
static boolean | equals(boolean[] a, boolean[] a2) |
static boolean | equals(byte[] a, byte[] a2) |
static boolean | equals(char[] a, char[] a2) |
static boolean | equals(double[] a, double[] a2) |
static boolean | equals(float[] a, float[] a2) |
static boolean | equals(int[] a, int[] a2) |
static boolean | equals(long[] a, long[] a2) |
static boolean | equals(Object[] a, Object[] a2) |
static boolean | equals(short[] a, short[] a2) |
import java.util.Arrays; public class ArraysEqualsTest { public static void main(String[] args) { int[] array1 = {2,2,2,2,2}; int[] array2 = new int[5]; int[] array3 = array1;
Arrays.fill(array2, 2);
System.out.println("arr1.equals(arr2):"); System.out.println(array1.equals(array2)); System.out.println(array1.equals(array3)); System.out.println("arr1 == arr2:"); System.out.println(array1 == array2); System.out.println(array1 == array3); System.out.println("Arrays.equals(arr1,arr2):"); System.out.println(Arrays.equals(array1, array2)); System.out.println(Arrays.equals(array1, array3)); } } |
输出结果:
arr1.equals(arr2):
false
true
arr1 == arr2:
false
true
Arrays.equals(arr1,arr2):
true
true
*arr1== arr2和arr1.equals(arr2)用来比较arr1和arr2是否引用自同一对象。
toString()方法
import java.util.Arrays; public class ArraystoString { public static void main(String[] args) { int[] array1 = {1,2,3}; System.out.println(Arrays.toString(array1)); System.out.println(Arrays.hashCode(array1)); } } |
输出结果:
[1, 2, 3]
30817
JDK文档:
static String | toString(boolean[] a) |
static String | toString(byte[] a) |
static String | toString(char[] a) |
static String | toString(double[] a) |
static String | toString(float[] a) |
static String | toString(int[] a) |
static String | toString(long[] a) |
static String | |
static String | toString(short[] a) |
static int | hashCode(boolean[] a) |
static int | hashCode(byte[] a) |
static int | hashCode(char[] a) |
static int | hashCode(double[] a) |
static int | hashCode(float[] a) |
static int | hashCode(int[] a) |
static int | hashCode(long[] a) |
static int |
deepToString(),deepEquals(),deepHashCode()方法
import java.util.Arrays;
public class Arraydeep { public static void main(String[] args) { int[][] array1 = { {1,2,3},{4,5,6},{7,8,9} }; int[][] array2 = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println(Arrays.deepToString(array1)); System.out.println(Arrays.deepToString(array2)); System.out.println(Arrays.deepEquals(array1, array2)); System.out.println(Arrays.deepHashCode(array1)); } } |
输出结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
true
30729379
JDK文档:
static boolean | deepEquals(Object[] a1, Object[] a2) |
static int | deepHashCode(Object[] a) |
static String | deepToString(Object[] a) |
copyOf()方法 JDK6
import java.util.Arrays;
public class ArrayscopyOf { public static void main(String[] args) { int[] array1 = {1,2,3,4,5}; int[] array2 = Arrays.copyOf(array1,array1.length); int[] array3 = Arrays.copyOf(array1, 10); for (int i = 0; i < array2.length; i ++) System.out.print(array2[i] + " "); System.out.println(); for (int arr : array3) System.out.print(arr + " "); } } |
输出结果:
1 2 3 4 5
1 2 3 4 5 0 0 0 0 0