java常用類---Arrays和Integer

1.Arrays類的概述和方法使用

  • A:Arrays類概述
    針對數組進行操作的工具類。
    提供了排序,查找等功能。
  • B:成員方法
    public static String toString(int[] a)
    public static void sort(int[] a)
    public static int binarySearch(int[] a,int key)
    static boolean equals(int[] a, int[] a2)比較兩個數組中的元素,是否一樣
    static int[] copyOf(int[] original, int newLength) 複製舊數組中的元素到一個新的數組中,新的數組長度是newLength 從0開始複製舊數組
    static int[] copyOfRange(int[] original, int from, int to)複製舊數組中的指定範圍間的幾個元素到新數組中
    案例1:
public class MyTest {
    public static void main(String[] args) {
        //Java針對數組的操作,給我們提供了一個工具類Arrays
        //此類包含用來操作數組(比如排序和搜索)的各種方法。
        int[] arr = {10, 20, 5, 3, 8, 7, 6};
        //排序
        Arrays.sort(arr);
        //打印數組元素
        String string = Arrays.toString(arr);
        System.out.println(string);
        //二分查找:前提數組元素有序
        int index = Arrays.binarySearch(arr, 80);
        System.out.println(index);
    }

}

案例2:

public class MyTest2 {
    public static void main(String[] args) {
        int[] arr = {10, 20, 5, 3, 8, 7, 6};
        int[] arr2 = {10, 20, 5, 3, 8, 7, 6};
        boolean b = Arrays.equals(arr, arr2);
        System.out.println(b);

       /* static int[] copyOf ( int[] original, int newLength)
        複製指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度。*/

        int[] ints = Arrays.copyOf(arr, arr.length);

        System.out.println(Arrays.toString(ints));

        "abc".concat("abc");

       /* static int[] copyOfRange ( int[] original, int from, int to)
        將指定數組的指定範圍複製到一個新數組。
*/

        //從指定索引處,拷貝舊數組元素到你指定的終止索引處,含頭不含尾

        int[] ints1 = Arrays.copyOfRange(arr, 1, 3);
        System.out.println(Arrays.toString(ints1));
    }
}

2.基本類型包裝類的概述

  • A: 需求:
    a:將100轉換成二進制 , 八進制 , 十六進制
    b:判斷一個數是否在int的範圍內
  • B:爲什麼會有基本類型包裝類
    爲了對基本數據類型進行更多的操作,更方便的操作,java就針對每一種基本數據類型提供了對應的類類型.
  • C:常用操作: 常用的操作之一:用於基本數據類型與字符串之間的轉換。
  • D:基本類型和包裝類的對應
    byte----Byte
    short—Short
    int-------Integer
    long ----Long
    float-----Float
    double–Double
    char ----Character
    boolean—Boolean
public class MyTest {
    public static void main(String[] args) {

        //byte -128  ---127
        //int 4個字節  -2^31-<=num-<=-2^31-1
        //Java爲了我們方便的去操作這些基本類型的數據,那麼針對每個基本數據類型,都提供了他所對應的包裝類(引用類型)

        int num=100;
        String string = Integer.toBinaryString(num);
        String string1 = Integer.toHexString(num);
        String string2 = Integer.toOctalString(num);
        System.out.println(string);
        System.out.println(string2);
        System.out.println(string1);

        if(2000>=Integer.MIN_VALUE&& 2000<=Integer.MAX_VALUE){
            System.out.println("int 類型的值");
        }
    }
}

3.Integer類

  • A:Integer類概述
    Integer 類在對象中包裝了一個基本類型 int 的值,
    該類提供了多個方法,能在 int 類型和String 類型之間互相轉換還提供了處理 int 類型時非常有用的其他一些常量和方法
  • B:構造方法
    public Integer(int value)
    public Integer(String s)

4.String和int類型的相互轉換

  • A:int -- String
    a:和""進行拼接
    b:public static String valueOf(int i)
    c:int – Integer – String
    d:public static String toString(int i)
  • B:String -- int
    a:String – Integer – intValue();
    b:public static int parseInt(String s)
public class MyTest {
    public static void main(String[] args) {
        // String和int類型的相互轉換

        //int------String
        int num = 100;//  ----->"100"
        //方式1
        String str = num + "";  //拼接空串
        //方式2 記憶這個
        //String 中 靜態方法 valueOf(num) 可以把多種類型轉換成字符串
        String s = String.valueOf(num);
      /*  char[]  chs={'a','b','c'};
        String s1 = new String(chs);
        //把字符數組轉換成字符串
        String s2 = String.valueOf(chs);*/
        //方式3
        Integer integer = new Integer(num);
        String string = integer.toString();
        System.out.println(string);
        // String------int
        String strNum = "100";//----100
        //方式1
        Integer integer1 = new Integer(strNum);
        int i = integer1.intValue(); //把包裝類型轉成他對應的基本類型

        //方式2 記這個方法
        int nun = Integer.parseInt(strNum);


    }
}

5.JDK5的新特性自動裝箱和拆箱

  • A:JDK5的新特性
    自動裝箱:把基本類型轉換爲包裝類類型
    自動拆箱:把包裝類類型轉換爲基本類型
  • B:案例演示
    JDK5的新特性自動裝箱和拆箱
public class MyTest2 {
    public static void main(String[] args) {
        //JDK1.5之後有的自動拆裝箱
        //自動裝箱:將基本類型自動轉換成他所對應的包裝類型
        //自動拆箱:將包裝類型自動轉換成他所對應的基本類型
        Integer integer = new Integer(20);

        Integer integer2 = new Integer(200);
       /* int a=20;
        int b=200;*/

       int num2=integer+integer2; //自動拆箱

        //收動拆箱
        int i = integer.intValue();
        int i1 = integer2.intValue();
        int num=i+i1;
        System.out.println(num);


        int aa=200;
        Integer integer1=aa;  //自動裝箱

        Integer integer3 = Integer.valueOf(200); //手動裝箱


        //都完成了哪些操作?
        Integer ii = 100; //自動裝箱
        ii += 200;//自動拆箱,自動裝箱


    }
}
  • C:注意事項
    在使用時,Integer x = null;代碼就會出現NullPointerException。
    建議先判斷是否爲null,然後再使用。

6.Integer的面試題

public class MyTest3 {
    public static void main(String[] args) {
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i1 == i2);//false
        //Integer類重寫了equals方法比值是否相同
        System.out.println(i1.equals(i2));//true
        System.out.println("-----------");

        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        System.out.println(i3 == i4);//false
        System.out.println(i3.equals(i4));//true
        System.out.println("-----------");

        Integer i5 = 128; //自動裝箱
        Integer i6 = 128;

        System.out.println(i5 == i6); //false
        System.out.println(i5.equals(i6)); //true
        System.out.println("-----------");

        Integer i7 = 127;
        Integer i8 = 127;
        System.out.println(i7 == i8); //true
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章