最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Arrays工具類(lèi)的一些常見(jiàn)方法總結(jié)

 更新時(shí)間:2024年02月27日 09:26:11   作者:cph_507  
在Java中Arrays類(lèi)是一個(gè)實(shí)用工具類(lèi),用于在數(shù)組上執(zhí)行各種操作,包括排序、搜索、比較等,這篇文章主要給大家介紹了關(guān)于Java中Arrays工具類(lèi)的一些常見(jiàn)方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下

前言

在Java中,Arrays類(lèi)是一個(gè)實(shí)現(xiàn)對(duì)數(shù)組操作的工具類(lèi),包括了各種各樣的靜態(tài)方法,可以實(shí)現(xiàn)數(shù)組的排序和查找、數(shù)組的比較和對(duì)數(shù)組增加元素,數(shù)組的復(fù)制和將數(shù)組轉(zhuǎn)換成字符串等功能。這些方法都有對(duì)所有基本類(lèi)型的重載方法。

基本的常用方法包括;

1.Arrays.asList()         

觀察源碼可知:此方法內(nèi)部的參數(shù):為一個(gè)動(dòng)態(tài)參數(shù)或者一個(gè)數(shù)組(必須為引用類(lèi)型,因?yàn)榉祷氐牧斜韮?nèi)部不能為基本數(shù)據(jù)類(lèi)型),即一組相同類(lèi)型的值

  • 作用:將一組相同類(lèi)型的參數(shù)或者數(shù)組,以List(列表)的類(lèi)型返回,

轉(zhuǎn)化原因(使用場(chǎng)景):因?yàn)閿?shù)組大小固定,不易更改,可通過(guò)轉(zhuǎn)化列表,通過(guò)具體的列表形式操作

例子;

2.Arrays.binarySearch():使用前提,必須在有序數(shù)組中

通過(guò)快捷輸入可了解到,此方法在Arrays類(lèi)中是重載的,不同的參數(shù)(參數(shù)的類(lèi)型,個(gè)數(shù)),適用于不同的場(chǎng)景。

此方法的作用:通過(guò)二分查找在 “有序數(shù)組”中查找目標(biāo)值。返回目標(biāo)值在數(shù)組中的下標(biāo),若未查找到,返回一個(gè)小于0的數(shù)。

以常用方法:舉例

  • 參數(shù):  (數(shù)組名稱(chēng),目標(biāo)值)
  • 參數(shù):(數(shù)組名稱(chēng),查找范圍的初始索引,查找范圍的末端索引,目標(biāo)值)
int[] array = {1,2,3,4,5,6,7,8,9};
		int index = Arrays.binarySearch(array , 8);
		System.out.println(index);
int[] array = {1,2,3,4,5,6,7,8,9};
		int  index = Arrays.binarySearch(array, 5,array.length,8);
		System.out.println(index);

觀察其內(nèi)部源代碼可知:

其內(nèi)部設(shè)有一個(gè)二分查找的private私有的算法,不過(guò)不同的參數(shù)傳入,最終都是利用該二分查找算法返回目標(biāo)值的下標(biāo)

3.Arrays.copyOf()

同理:通過(guò)快捷輸入可了解到,此方法在Arrays類(lèi)中是重載的,不同的參數(shù)(參數(shù)的類(lèi)型,個(gè)數(shù)),適用于不同的場(chǎng)景。

主要作用;對(duì)目標(biāo)數(shù)組復(fù)制,從頭開(kāi)始復(fù)制長(zhǎng)度為n個(gè)元素

  • 參數(shù):(目標(biāo)數(shù)組名稱(chēng),需復(fù)制的長(zhǎng)度)

觀察源碼:通常創(chuàng)建一個(gè)長(zhǎng)度為復(fù)制長(zhǎng)度的新數(shù)組,再通過(guò)System類(lèi)提供的arrayCopy方法復(fù)制到新數(shù)組,再返回出去。

例子:

int[] array = {1,2,3,4,5,6,7,8,9};
		int[] arr = Arrays.copyOf(array, 1);
		int[] arr1 = Arrays.copyOf(array, 5);
		int[] arr2 = Arrays.copyOf(array, 8);
		System.out.println(Arrays.toString(arr));
		System.out.println(Arrays.toString(arr1));
		System.out.println(Arrays.toString(arr2));	

4.Arrays.copyOfRange()

同理:通過(guò)快捷輸入可了解到,此方法在Arrays類(lèi)中是重載的,不同的參數(shù)(參數(shù)的類(lèi)型,個(gè)數(shù)),適用于不同的場(chǎng)景。

主要作用:對(duì)目標(biāo)數(shù)組復(fù)制,某個(gè)區(qū)間

  • 參數(shù)(目標(biāo)數(shù)組名稱(chēng),開(kāi)始復(fù)制下標(biāo),結(jié)束下標(biāo)(不包含結(jié)束下標(biāo)位置元素))

觀察源碼:在調(diào)用該方法后,先判斷結(jié)束下標(biāo)是否大于初始下標(biāo),若小于,則拋出下標(biāo)錯(cuò)誤異常(初始下標(biāo)>結(jié)束小標(biāo)),

若下標(biāo)正常,結(jié)束下標(biāo)-初始下標(biāo)即復(fù)制后的新數(shù)組長(zhǎng)度,創(chuàng)建新數(shù)組,使用System.arrcopy()方法復(fù)制,再返回出去。

例子:

int[] array = {1,2,3,4,5,6,7,8,9};
int[] arr = Arrays.copyOfRange(array, 3, 7);
int[] arr1 = Arrays.copyOfRange(array, 1, 5);
int[] arr2 = Arrays.copyOfRange(array, 2, 9);
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));	

5.Arrays.fill()

同理:通過(guò)快捷輸入可了解到,此方法在Arrays類(lèi)中是重載的,不同的參數(shù)(參數(shù)的類(lèi)型,個(gè)數(shù)),適用于不同的場(chǎng)景。

主要作用:填充數(shù)組,

  • 參數(shù):(數(shù)組名稱(chēng),填充元素)
               (數(shù)組名稱(chēng),填充區(qū)間的初始下標(biāo),填充區(qū)間的結(jié)束下標(biāo),填充元素)

觀察源碼:

兩個(gè)參數(shù)的源碼:由源碼可知,此靜態(tài)方法是通過(guò)傳參后,利用for循環(huán)將其所有值改變

區(qū)間填充:四個(gè)參數(shù)的源碼,此靜態(tài)方法再傳參后,先根據(jù)數(shù)組的長(zhǎng)度檢查,區(qū)間的初始下標(biāo)以及結(jié)束下標(biāo)是否合理,如果合理,通過(guò)for循環(huán)進(jìn)行改變?cè)刂?,否則拋出下標(biāo)異常

例子:

        int[] nums = {1,2,3,3,5,6,7};
		Arrays.fill(nums,-1);//數(shù)組全部填充覆蓋
		System.out.println(Arrays.toString(nums));
		Arrays.fill(nums, 1,5,9);//數(shù)組區(qū)間填充覆蓋
		System.out.println(Arrays.toString(nums));

6.Arrays.sort():此方法再Arrays類(lèi)中也是重載。

主要作用:可對(duì)各種類(lèi)型的數(shù)組排序

  • 參數(shù)(數(shù)組名稱(chēng))
            (數(shù)組名稱(chēng),比較器的內(nèi)部類(lèi)(自定義比較規(guī)則))

觀察源碼

例子:

基本類(lèi)型數(shù)組

int[] nums = {99,8,3,3,34,6,7};
		Arrays.sort(nums);//對(duì)基本類(lèi)型數(shù)組排序

自定義比較引用類(lèi)型數(shù)組

7.Arrays.toString()

主要作用:快速打印一維數(shù)組所有元素

  • 參數(shù)(數(shù)組名稱(chēng))

觀察源碼:通過(guò)檢查是否為空,不為空,檢查數(shù)組長(zhǎng)度,若為0,則返回字符串"[]",若大于0,則創(chuàng)建可變字符串StringBuilder,通過(guò)尾部追加雙引號(hào),中括號(hào),及數(shù)組元素,并輸出這個(gè)可變字符串

例子

	int[] nums = {99,8,3,3,34,6,7};
		System.out.println(Arrays.toString(nums));

總結(jié) 

到此這篇關(guān)于Java中Arrays工具類(lèi)的一些常見(jiàn)方法總結(jié)的文章就介紹到這了,更多相關(guān)Java Arrays工具類(lèi)方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mybatis-plus使用xml自定義sql語(yǔ)句方式

    mybatis-plus使用xml自定義sql語(yǔ)句方式

    這篇文章主要介紹了mybatis-plus使用xml自定義sql語(yǔ)句方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 一文掌握maven??filtering標(biāo)簽

    一文掌握maven??filtering標(biāo)簽

    這篇文章主要介紹了maven??filtering標(biāo)簽,本文通過(guò)三種方法給大家講解maven?filtering標(biāo)簽,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • SpringBoot應(yīng)用的接口訪問(wèn)從HTTP改為HTTPS

    SpringBoot應(yīng)用的接口訪問(wèn)從HTTP改為HTTPS

    本文主要介紹了SpringBoot應(yīng)用的接口訪問(wèn)從HTTP改為HTTPS,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 詳解mybatis中的if-else的嵌套使用

    詳解mybatis中的if-else的嵌套使用

    本文主要介紹了mybatis中的if-else的嵌套使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • java數(shù)據(jù)類(lèi)型與變量的安全性介紹

    java數(shù)據(jù)類(lèi)型與變量的安全性介紹

    這篇文章主要介紹了java數(shù)據(jù)類(lèi)型與變量的安全性介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Mybatis逆向工程時(shí)失敗問(wèn)題及解決

    Mybatis逆向工程時(shí)失敗問(wèn)題及解決

    這篇文章主要介紹了Mybatis逆向工程時(shí)失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 一文帶你深入了解Java?String的不可變性

    一文帶你深入了解Java?String的不可變性

    這篇文章主要來(lái)和大家一起深入探討一下Java?String中的不可變性,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Java集合中的LinkedHashMap使用解析

    Java集合中的LinkedHashMap使用解析

    這篇文章主要介紹了Java集合中的LinkedHashMap使用解析,LinkedHashMap是繼承于HashMap的,所以它的很多屬性和方法都是HashMap中的,那么它是怎么實(shí)現(xiàn)有序存儲(chǔ)的呢,需要的朋友可以參考下
    2023-12-12
  • java中CompleteFuture與Future的區(qū)別小結(jié)

    java中CompleteFuture與Future的區(qū)別小結(jié)

    本文主要介紹了java中CompleteFuture與Future的區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • maven中resource配置的實(shí)現(xiàn)示例

    maven中resource配置的實(shí)現(xiàn)示例

    我們?cè)谑褂肕aven組件來(lái)構(gòu)建項(xiàng)目的時(shí)候,通常將配置文件放在資源文件目錄下,本文主要介紹了maven中resource配置的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論

无极县| 沧州市| 龙门县| 奇台县| 潮安县| 新巴尔虎左旗| 利川市| 定远县| 高台县| 蚌埠市| 凌源市| 田林县| 荔波县| 克拉玛依市| 清流县| 南平市| 江门市| 靖州| 扎鲁特旗| 西华县| 克拉玛依市| 上思县| 崇州市| 射洪县| 米易县| 西和县| 杭州市| 吉安市| 鱼台县| 临高县| 郸城县| 杭锦旗| 平安县| 偃师市| 牙克石市| 托克托县| 唐山市| 瑞丽市| 铅山县| 专栏| 黄平县|