亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java 數組,看這一篇就夠了

發布時間:2020-07-05 05:58:31 來源:網絡 閱讀:170 作者:沉默王二 欄目:編程語言

在 Java 泛型出現之前,只有數組可以用來存儲指定類型的對象;在自動裝箱機制出現之前,只有數組可以用來存儲基本數據類型;也就是說,在泛型和自動裝箱機制出現之前,數組在 Java 當中的分量舉足輕重。

況且數組還是一種效率最高的存儲和隨機訪問對象序列的方式,但遺憾的是,數組的長度是固定的——舉個例子,創建它的時候指定長度是 6,就只能存儲 6 個元素,當你想放第 7 個元素時,是無法做到的。

隨著計算機硬件能力的提升,開發人員在存儲一組數據的時候更愿意使用 ArrayList 而不是數組。盡管 ArrayList 內部是通過數組實現的,但與數組相比,它的容量能夠自動增長,還有很多數組沒有的特性。能不使用數組就別使用數組,除非要用數組來改善性能問題。

01、創建數組

讓我們來給Java數組下一個明確的定義——數組用來存儲固定長度同類型元素。

示例如下:

int[] ints = new int[3];
ints[0] = 1;
ints[1] = 2;
ints[2] = 3;

int ints1[] = new int[3];

int[] ints2 = { 1, 2, 3 };

int[] ints相較于int ints1[]是優選的聲明方式, int ints1[]風格來自于 C/C++ 語言 ,便于 C/C++ 程序員能夠快速地理解Java語言。

數組的創建方式有兩種,一種是通過new關鍵字,同時指定長度,然后通過array[index] = value的方式賦值;另外一種方式是通過{value1, value2, ...}的方式直接創建并同時賦值。

最常見的應用如下(日期的占位符字符串):

private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd",
            "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM" };

02、小心length

在使用List和Map的時候,可以直接通過size()方法獲取容器的實際大小(長度)。數組也有一個關鍵字length來獲取大小(長度),但意思大不相同。length只表示數組所能夠容納元素的大小,而并非數組的實際大小。

舉例如下:

int[] ints = new int[3];
ints[0] = 1;
ints[1] = 2;

System.out.println(ints.length); // 輸出3

盡管ints的實際長度為2,但ints.length的長度卻為3——要小心了。

03、Arrays工具類

Java的設計者可謂良苦用心,特意為數組設計了一個專屬工具類——java.util.Arrays,里面有幾個常用的方法我們來介紹一下。

1)sort()

sort()方法用來對數組進行排序,該方法要求數組的元素要實現Comparable接口。如果排序的元素不是String或者基本數據類型,就需要主動實現Comparable接口(基本數據類型和String本身已經實現了Comparable接口)。

示例如下:

String[] strs = {"沉", "默","王", "二"};

Arrays.sort(strs);
System.out.println(Arrays.toString(strs));
// 輸出[二, 沉, 王, 默]

sort()方法排序后的結果就是[二, 沉, 王, 默]。

2)binarySearch()

binarySearch()方法用來對數組進行二分查找(返回值所在的下標,未找到的話返回-1),調用該方法之前必須要先排序。

示例如下:

String[] strs = {"沉", "默","王", "二"};

Arrays.sort(strs);
System.out.println(Arrays.binarySearch(strs, "二"));
// 排序后的結果為[二, 沉, 王, 默]
// 二分查找的結果范圍0

由于sort()方法排序后的結果為[二, 沉, 王, 默],所以Arrays.binarySearch(strs, "二")返回下標值0。

3)asList()

asList()方法用來將數組轉化成List(ArrayList),源碼如下:

public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}

那如何將List轉化成數組呢?通過List的toArray()方法。可參照下例體驗由數組定義方式不同帶來的細微差別。

String[] strs = {"沉", "默","王", "二"};

List<String> list = Arrays.asList(strs);
System.out.println(list);
// 輸出[沉, 默, 王, 二]

String[] strs1 = new String[list.size()];
System.out.println(Arrays.toString(list.toArray(strs1)));
// 輸出 [沉, 默, 王, 二]

String[] strs2 = new String[5];
System.out.println(Arrays.toString(list.toArray(strs2)));
// 輸出 [沉, 默, 王, 二, null]

String[] strs3 = new String[1];
System.out.println(Arrays.toString(list.toArray(strs3)));
// 輸出 [沉, 默, 王, 二]

String[] strs4 = {};
System.out.println(Arrays.toString(list.toArray(strs4)));
// 輸出 [沉, 默, 王, 二]

當聲明的數組大小超出List的大小后,toArray()方法會對轉換后的數組進行補位(null)。

4)toString()

toString()方法用來將數組進行字符串格式的輸出([value1, value2, value3, ...]的格式),源碼如下:

public static String toString(Object[] a) {
    if (a == null)
        return "null";

    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(String.valueOf(a[i]));
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}

上一篇:Java String,看這篇就夠了

下一篇:Java 集合類入門篇

微信搜索「*沉默王×××免費視頻**」獲取 500G 高質量教學視頻(已分門別類)。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

磴口县| 遂宁市| 东台市| 双鸭山市| 隆化县| 抚松县| 苗栗市| 灯塔市| 仙居县| 盐城市| 洪泽县| 本溪市| 阿尔山市| 漠河县| 香格里拉县| 道真| 长岛县| 吴忠市| 泸西县| 陈巴尔虎旗| 景宁| 武夷山市| 金湖县| 福鼎市| 彭州市| 哈密市| 乡宁县| 五河县| 乐昌市| 娄底市| 楚雄市| 洛扎县| 云龙县| 郑州市| 民权县| 贺州市| 深圳市| 黎川县| 高雄市| 合水县| 柘城县|