Java初級筆記_常用API_2

 ------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------

一、數組的高級操作
(1)數組:存儲同一種數據類型的多個元素的容器。
(2)特點:每個元素都有從0開始的編號,方便我們獲取。專業名稱:索引。
(3)數組操作:
A:遍歷
public static void printArray(int[] arr) {
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);
}
}


B:獲取最值
public static int getMax(int[] arr) {
int max = arr[0];


for(int x=1; x<arr.length; x++) {
if(arr[x]>max) {
max = arr[x];
}
}


return max;
}


C:排序
a:冒泡排序
原理:相鄰元素兩兩比較,大的往後放。第一次完畢,最大值在最大索引處。


public static void bubbleSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) {
for(int y=0; y<arr.length-1-x; y++) {
if(arr[y] > arr[y+1]) {
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}


b:選擇排序
原理:從0索引元素開始,依次和後面的所有元素比較,小的往0索引處放。
     第一次完畢後,最小值在最小索引處。


public static void selectSort(int[] arr) {
for(int x=0; x<arr.length-1; x++) {
for(int y=x+1; y<arr.length; y++) {
if(arr[y]>arr[x]) {
int temp = arr[y];
arr[y] = arr[x];
arr[x] = temp;
}
}
}
}


D:查找
a:普通查找
原理:遍歷數組,從頭找到尾


public static int getIndex(int[] arr,int value) {
int index = -1;


for(int x=0; x<arr.length; x++) {
if(arr[x]==value) {
index = x;
break;
}
}


return index;
}


b:二分查找(折半查找)
前提:數組必須是有序的。


原理:每次都從中間開始找,如果比中間數據小,就在左邊找,
     如果比中間數據大,就在右邊找,如果相等,就返回中間的索引值。


public static int getIndex(int[] arr,int value) {
int start = 0;
int end = arr.length-1;
int mid = (start+end)/2;


while(arr[mid]!=value){
if(value>arr[mid]) {
start = mid + 1;
}else if(value<arr[mid]) {
end = mid - 1;
}


if(start > end) {
return -1;
}


mid = (start+end)/2;
}


return mid;
}


二、Arrays工具類的使用
(1)Arrays是針對數據進行操作的工具類。
(2)要掌握的功能:
A:把數組轉成字符串
public static String toString(int[] arr)
B:排序
public static void sort(int[] arr)
C:二分查找
public static int binarySearch(int[] arr,int value)
(3)Arrays工具類的源碼。(理解)


三、StringBuffer類
(1)StringBuffer:是字符串緩衝區類,容量可以改變。
(2)面試題:
String和StringBuffer的區別?
String的長度固定。
   StringBuffer的長度可變

StringBuffer和StringBuilder的區別?
StringBuffer的線程安全,效率低。
   StringBuilder的線程不安全,效率高。

(3)StringBuffer的構造方法
A:StringBuffer sb = new StringBuffer();
     B:StringBuffer sb = new StringBuffer(int capacity);
     C:StringBuffer sb = new StringBuffer(String s);
     注意:StringBuilder的功能和StringBuffer一模一樣。前者是JDK5以後出現的。

(4)要掌握的功能:(請自己把對應的方法寫出來)
A:添加功能
    B:刪除功能
    C:其他功能
替換功能
截取功能
反轉功能


四、基本數據類型包裝類
(1)由於我們對基本類型只能做一些最簡單的操作,爲了讓我們有更多的操作,java就針對每種基本類型          提供了保證類。
(2)八種基本類型對應的包裝類是誰?
byte Byte
    short Short
    int         Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

(3)Integer類的構造方法
A:Integer i = new Integer(int x);
     B:Integer i = new Integer(String s);
注意:這裏的s必須是有數字字符組成的字符串。

(4)Integer的功能
A:String -- int
String s = "100";
int i = Integer.parseInt(s);


    B:int -- String
int i = 100;
String s = String.valueOf(i);

(5)JDK5以後的新特性
A:自動裝箱 從int--Integer
     B:自動拆箱 從Integer--int


解釋下面的代碼:哪裏體現了自動裝箱,哪裏體現了自動拆箱
Integer i = 100;
i += 200;
System.out.println(i);

    注意:
讓我們操作變得簡單,但是隱含了一個問題,這個時候,我們在使用對象前,最好做不爲空的校驗。

(6)面試題:
byte常量池。


 ------<a href="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章