Arrays

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)
          
对指定的 byte 型数组按数字升序进行排序。

static void

sort(byte[] a, int fromIndex, int toIndex)
          
对指定 byte 型数组的指定范围按数字升序进行排序。

static void

sort(char[] a)
          
对指定的 char 型数组按数字升序进行排序。

static void

sort(char[] a, int fromIndex, int toIndex)
          
对指定 char 型数组的指定范围按数字升序进行排序。

static void

sort(double[] a)
          
对指定的 double 型数组按数字升序进行排序。

static void

sort(double[] a, int fromIndex, int toIndex)
          
对指定 double 型数组的指定范围按数字升序进行排序。

static void

sort(float[] a)
          
对指定的 float 型数组按数字升序进行排序。

static void

sort(float[] a, int fromIndex, int toIndex)
          
对指定 float 型数组的指定范围按数字升序进行排序。

static void

sort(int[] a)
          
对指定的 int 型数组按数字升序进行排序。

static void

sort(int[] a, int fromIndex, int toIndex)
          
对指定 int 型数组的指定范围按数字升序进行排序。

static void

sort(long[] a)
          
对指定的 long 型数组按数字升序进行排序。

static void

sort(long[] a, int fromIndex, int toIndex)
          
对指定 long 型数组的指定范围按数字升序进行排序。

static void

sort(Object[] a)
          
根据元素的自然顺序,对指定对象数组按升序进行排序。

static void

sort(Object[] a, int fromIndex, int toIndex)
          
根据元素的自然顺序,对指定对象数组的指定范围按升序进行排序。

static void

sort(short[] a)
          
对指定的 short 型数组按数字升序进行排序。

static void

sort(short[] a, int fromIndex, int toIndex)
          
对指定 short 型数组的指定范围按数字升序进行排序。

static

<T> void

sort(T[] a, Comparator<? super T> c)
          
根据指定比较器产生的顺序对指定对象数组进行排序。

static

<T> void

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

<T> List<T>

asList(T... a)
          
返回一个受指定数组支持的固定大小的列表。

static int

binarySearch(byte[] a, byte key)
          
使用二进制搜索算法来搜索指定的 byte 型数组,以获得指定的值。

static int

binarySearch(char[] a, char key)
          
使用二进制搜索算法来搜索指定的 char 型数组,以获得指定的值。

static int

binarySearch(double[] a, double key)
          
使用二进制搜索算法来搜索指定的 double 型数组,以获得指定的值。

static int

binarySearch(float[] a, float key)
          
使用二进制搜索算法来搜索指定的 float 型数组,以获得指定的值。

static int

binarySearch(int[] a, int key)
          
使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。

static int

binarySearch(long[] a, long key)
          
使用二进制搜索算法来搜索指定的 long 型数组,以获得指定的值。

static int

binarySearch(Object[] a, Object key)
          
使用二进制搜索算法来搜索指定数组,以获得指定对象。

static int

binarySearch(short[] a, short key)
          
使用二进制搜索算法来搜索指定的 short 型数组,以获得指定的值。

static

<T> int

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)
          
将指定的 boolean 值分配给指定 boolean 型数组的每个元素。

static void

fill(boolean[] a, int fromIndex, int toIndex, boolean val)
          
将指定的 boolean 值分配给指定 boolean 型数组指定范围中的每个元素。

static void

fill(byte[] a, byte val)
          
将指定的 byte 值分配给指定 byte 节型数组的每个元素。

static void

fill(byte[] a, int fromIndex, int toIndex, byte val)
          
将指定的 byte 值分配给指定 byte 型数组指定范围中的每个元素。

static void

fill(char[] a, char val)
          
将指定的 char 值分配给指定 char 型数组的每个元素。

static void

fill(char[] a, int fromIndex, int toIndex, char val)
          
将指定的 char 值分配给指定 char 型数组指定范围中的每个元素。

static void

fill(double[] a, double val)
          
将指定的 double 值分配给指定 double 型数组的每个元素。

static void

fill(double[] a, int fromIndex, int toIndex, double val)
          
将指定的 double 值分配给指定 double 型数组指定范围中的每个元素。

static void

fill(float[] a, float val)
          
将指定的 float 值分配给指定 float 型数组的每个元素。

static void

fill(float[] a, int fromIndex, int toIndex, float val)
          
将指定的 float 值分配给指定 float 型数组指定范围中的每个元素。

static void

fill(int[] a, int val)
          
将指定的 int 值分配给指定 int 型数组的每个元素。

static void

fill(int[] a, int fromIndex, int toIndex, int val)
          
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。

static void

fill(long[] a, int fromIndex, int toIndex, long val)
          
将指定的 long 值分配给指定 long 型数组指定范围中的每个元素。

static void

fill(long[] a, long val)
          
将指定的 long 值分配给指定 long 型数组的每个元素。

static void

fill(Object[] a, int fromIndex, int toIndex, Object val)
          
将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。

static void

fill(Object[] a, Object val)
          
将指定的 Object 引用分配给指定 Object 数组的每个元素。

static void

fill(short[] a, int fromIndex, int toIndex, short val)
          
将指定的 short 值分配给指定 short 型数组指定范围中的每个元素。

static void

fill(short[] a, short val)
          
将指定的 short 值分配给指定 short 型数组的每个元素。

 

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)
          
如果两个指定的 boolean 型数组彼此相等,则返回 true

static boolean

equals(byte[] a, byte[] a2)
          
如果两个指定的 byte 型数组彼此相等,则返回 true

static boolean

equals(char[] a, char[] a2)
          
如果两个指定的 char 型数组彼此相等,则返回 true

static boolean

equals(double[] a, double[] a2)
          
如果两个指定的 double 型数组彼此相等,则返回 true

static boolean

equals(float[] a, float[] a2)
          
如果两个指定的 float 型数组彼此相等,则返回 true

static boolean

equals(int[] a, int[] a2)
          
如果两个指定的 int 型数组彼此相等,则返回 true

static boolean

equals(long[] a, long[] a2)
          
如果两个指定的 long 型数组彼此相等,则返回 true

static boolean

equals(Object[] a, Object[] a2)
          
如果两个指定的 Objects 数组彼此相等,则返回 true

static boolean

equals(short[] a, short[] a2)
          
如果两个指定的 short 型数组彼此相等,则返回 true

 

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== arr2arr1.equals(arr2)用来比较arr1arr2是否引用自同一对象。

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

toString(Object[] a)
          
返回指定数组内容的字符串表示形式。

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

hashCode(Object[] a)
          
基于指定数组的内容返回哈希码。

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)
          
如果两个指定数组彼此是深层相等 的,则返回 true

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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值