1.重新認(rèn)識一下Arrays類
2.兩種比較器的使用
3.數(shù)據(jù)結(jié)構(gòu) 二叉樹(Binary Tree)
在之前一直使用的java.util.Arrays
.sort()實(shí)現(xiàn)數(shù)組的排序,其實(shí)Arrays類就是一個util包下的工具類,主要是完成所有與數(shù)組有關(guān)的操作功能。
在這個類里面有二分查找法的支持
public static int binarySearch(數(shù)據(jù)類型[] a,數(shù)據(jù)類型 key)乐横。
范例:使用Arrays提供的方法實(shí)現(xiàn)二分查找
public class TestDemo{
public static void main(String[] args) throws Exception{
int data[]=new int[]{1,5,3,4,2,6,7,8,9};
Arrays.sort(data);
System.out.println(Arrays.binarySearch(data, 9));
}
}
的確找到了關(guān)鍵字為8钓辆,關(guān)于二分查找的實(shí)現(xiàn)= =參照數(shù)據(jù)結(jié)構(gòu)或者查看JDK源碼爹袁。
除了二分查找外铝噩,還有一個操作功能趟庄。
Arrays類提供了數(shù)組比較显拳,與Object的equals完全沒有關(guān)系棚愤。
public static boolean equals(數(shù)據(jù)類型[] a,數(shù)據(jù)類型[] a2)
要想判斷數(shù)組是否相同,需要順序完全一直:
范例:判斷a杂数,b數(shù)組是否相同
package TestDemo;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
public class TestDemo{
public static void main(String[] args) throws Exception{
int a[]=new int[]{1,2,3};
int b[]=new int[]{2,1,3};
System.out.println(Arrays.equals(a, b));
}
}
image.png
還有一個將數(shù)組變?yōu)樽址敵?
public static String toString(int [] a)