主要讲解Arrays类
1。Arrays常用方法
package com.yinbodotcc;
/*
*
* 数组的排序和搜索
* List拥有的排序和搜索方法和Arrays对应差不多
*
*/
import java.util.Scanner;
import java.util.Arrays;
import java.util.*;
这个类作为Arrays排序的依据,主要用来排序String数组
class MyCompatator implements Comparator
{
public int compare(Object one,Object two)
{
String oneS=(String)one;
String twoS=(String)two;
return oneS.compareToIgnoreCase(twoS);
}
}
//
public class MyArrays1
{
public static void main(String[]args)
{
//Arrays类为所有基本数据类型的数组提供了一个过载的sort()和binarySearch()
Scanner scanner = new Scanner(System.in);
int[] arr = {1, 2, 3, 4, 5, 6, 7 ,8, 9};
System.out.print("排序前: ");
for(int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.println();
Arrays.sort(arr);
System.out.print("排序后: ");
for(int i = 0; i < arr.length; i++)
System.out.print(arr[i] + " ");
System.out.print("/n输入要搜索的值: ");
int key = scanner.nextInt();
int index = -1;
if((index = Arrays.binarySearch(arr, key)) > -1) {
System.out.println("找到值於索引 " +
index + " 位置");
}
else
System.out.println("找不到指定值");
int arrFill[]=new int[6];
Arrays.fill(arrFill, 3);
for(int temp:arrFill)
System.out.println(temp);
int arrEquals[]=new int[6];
Arrays.fill(arrEquals, 3);
System.out.println(Arrays.equals(arrFill, arrEquals));
///
System.out.println(Arrays.toString(arrFill));
//
int arrTwoD1[][]={{1,2,3},{4,5,6}};
int arrTwoD2[][]={{1,2,3},{4,5,6}};
System.out.println(Arrays.equals(arrTwoD1, arrTwoD2));//false
System.out.println(Arrays.deepEquals(arrTwoD1, arrTwoD2));//true,所以可以用来比较2维数组
//
System.out.println(Arrays.toString(arrTwoD1));//[[I@de6ced, [I@c17164]
System.out.println(Arrays.deepToString(arrTwoD1));//[[1, 2, 3], [4, 5, 6]]所以可以用来输出多维数组
///
byte b[]=new byte[8];
Random r=new Random();
r.nextBytes(b);
System.out.println(Arrays.toString(b));
String s="ACbdefgaBcDEFG";
char c[]=s.toCharArray();
Arrays.sort(c);
String tempString=new String(c);
System.out.printf("%s%n", tempString);
///
String[] sa={"ABCDEFGa","abcdefg"} ;
Arrays.sort(sa,new MyCompatator());//按照我们的比较规则排列
for(String temp:sa)
System.out.println(temp);
int index1 = -1;
//下面这个比较没有new MyCompatator()时,会报告找不到,所以一定要有
if((index1 = Arrays.binarySearch(sa, "ABCDEFGa",new MyCompatator())) > -1) {
System.out.println("找到值於索引 " +
index1 + " 位置");
}
else
System.out.println("找不到指定值");
}
}
2。某个类本身就有种自身的排序规则
package com.yinbodotcc;
import java.util.Arrays;
public class MyArrays2 implements Comparable
{
private int i;
public MyArrays2(int i)
{
this.i=i;
}
public int compareTo(Object o)
{
int j=((MyArrays2)o).i;
return i>j?1:(i==j?0:-1);
}
public String toString()
{
return i+"";
}
public static void main(String args[])
{
MyArrays2 []m={new MyArrays2(2),new MyArrays2(1)};
Arrays.sort(m);//如果这个类没有实现Comparable
for(MyArrays2 one:m)
System.out.println(one);
}
}