天天看點

大資料基礎之java常用API二(數組元素排序,冒泡排序、Arrays類,包裝類,Date類)1. 數組元素排序2. 包裝類3. Date類

(大資料基礎之常用API二)

大資料基礎之java常用API二(數組元素排序,冒泡排序、Arrays類,包裝類,Date類)1. 數組元素排序2. 包裝類3. Date類

1. 數組元素排序

1. 1 冒泡排序

圖解

大資料基礎之java常用API二(數組元素排序,冒泡排序、Arrays類,包裝類,Date類)1. 數組元素排序2. 包裝類3. Date類

代碼示範

public static void main(String[] args) {
    int[] arr = {25, 69, 80, 57, 13};

    // 周遊數組
    int count = 0;
    // 外層循環中arr.length-1 就是告訴我們如果五個數字已經确定了4個最後一輪不用比
    for (int i = 0; i < arr.length - 1; i++) {
        // 内層循環中arr.length - 1,防止和j+1進行比較時數組越界
        // 内層循環中arr.length - i, 已經比較到最大值的資料沒有必要再次比較
        for (int j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
            count++;
        }
    }

    // 列印結果
    System.out.println(Arrays.toString(arr));
    System.out.println(count);
}
           

1.2 Arrays

• 已知數組int[] arr = {25, 69, 80, 57, 13}.

• 通過Arrays#sort()方法, 對其升序排列.

• 列印排序後的結果.

Arrays 是一個工具類:

工具類的特點:

1.構造方法私有

2.都是靜态成員方法

toString: 将數組轉換為字元串

sort: 排序 預設升序

public class Demo01 {
    public static void main(String[] args) {
        // 建立數組
        int[] arr = {25, 69, 80, 57, 13};
        // 使用sort進行排序
        Arrays.sort(arr);
        // 使用tostring列印數組中的内容
        System.out.println(Arrays.toString(arr)); // [13, 25, 57, 69, 80]
    }
}
           

2. 包裝類

2.1 基本類型-->包裝類

1. byte Byte
2. short Short
3. int Integer
4. long Long
5. char Character
6. flat Float
7. double Double
8. boolean Boolean

包裝類: 就是基礎資料類型包裝成一個引用類型的==class==

基礎資料類型沒有對應的屬性和方法,但是我們有很多常用的方法或者功能需要調用,并且最好可以使用.文法調用

是以我們就需要将基礎資料類型轉換為引用類型,友善我們的開發工作,此時就出現了包裝類

包裝類中有一些常用的方法 我們以Integer為例

構造方法:

public Integer(int a);

public Ingeter(String s);

靜态變量:

MAX_VALUE

MIN_VALUE

SIZE

TYPE

成員方法:

toString: 重寫了object中的tostring 輸出的是對象的内容

equals: 重寫了Object中的方法,對比兩個對象中的值是否相等,而不是對比位址

parseInt: 将字元串類型資料轉換為int類型資料的方法,在之前用過

所有的包裝類,除了Character 都有parse方法

parseFloat

parseDouble

parseBoolean

3. 自動拆裝箱

自動拆裝箱:

在這裡我們把基礎資料類型轉換為引用類型的方式比喻為裝到箱子裡,叫做裝箱

我們把引用類型轉換為基礎資料類型,比喻成從箱子裡拆除來,叫做拆箱

public class Demo02 {
    public static void main(String[] args) {
        // 我們以Integer為例進行拆裝箱示範
        // 裝箱:
        Integer i1 = new Integer(12);
        // 自動裝箱:
        Integer i2 = 12;

        // 拆箱
        int int1 = i1.intValue();
        // 自動拆箱
        int int2 = i1;

        System.out.println(i1);
        System.out.println(i2);
        System.out.println(int1);
        System.out.println(int2);

        // 在jdk 1.5之後出現了自動拆裝箱. 在這之前都是使用手動拆裝箱的方式完成的.
    }
}
           

練習:

/*
需求
•  已知字元串String s = "91 27 45 38 50";
•  請通過代碼實作最終輸出結果是: "27, 38, 45, 50, 91"

思路:
1. 定義字元串s
2. 将字元串進行切割 ,按照空格拆分
    增加内容:
    1.将拆分後的數組中的字元串轉鬥轉換為int類型的資料
    2.對數組進行排序
3. 将拆分後的數字轉換為字元串類型
4. 删除收尾的[]

 */
public class Demo03 {
    public static void main(String[] args) {
        // 1. 定義字元串s
        String s = "91 27 45 38 50";
        // 2. 将字元串進行切割 ,按照空格拆分
        String[] sArray = s.split(" ");
        //增加内容
        //定義了一個空的數組,指定長度為5
        int[] arr = new int[sArray.length];
        for (int i = 0; i < sArray.length; i++) {
            // 将sArray中的字元串數字,轉換為int類型傳入arr中的相應位置
            arr[i] = Integer.parseInt(sArray[i]);
        }
        Arrays.sort(arr);
        // 3. 将拆分後的數字轉換為字元串類型
        String sString = Arrays.toString(arr);
        // 4. 删除收尾的[]
        //方法一:
//        String result = sString.replace("[", "\"").replace("]", "\"");
        //方法二:
        String result = sString.substring(1, sString.length() - 1);
        // 列印結果
        System.out.println(result);

    }
}
           

3. Date類

    1. getTime
    2. setTime
public class Demo01 {
    public static void main(String[] args) {
        // 建立一個Date對象
        Date d1 = new Date();
        // 列印時間資料
        System.out.println(d1); // 擷取的是目前的系統時間

        // 使用date對象擷取其時間的時間戳
        // 時間戳: 從1970年1月1日到指定時間的毫秒值
        System.out.println(d1.getTime()); // 1643080538673

        // 通過一個時間戳初始化一個時間對象
        Date d2 = new Date(1643080538673L);
        System.out.println(d2);

        // 通過時間戳修改目前的時間對象的值
        d1.setTime(1643080538673L);
        System.out.println(d1);


        // 在開發中不适用上述方式擷取目前時間,因為不友善,不好用,不優雅
        // 1643080827419  System.currentTimeMillis()擷取的是時間戳
        System.out.println(System.currentTimeMillis());

    }
}