亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中Arrays工具類的一些常見方法總結(jié)

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

前言

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

基本的常用方法包括;

1.Arrays.asList()         

觀察源碼可知:此方法內(nèi)部的參數(shù):為一個動態(tài)參數(shù)或者一個數(shù)組(必須為引用類型,因為返回的列表內(nèi)部不能為基本數(shù)據(jù)類型),即一組相同類型的值

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

轉(zhuǎn)化原因(使用場景):因為數(shù)組大小固定,不易更改,可通過轉(zhuǎn)化列表,通過具體的列表形式操作

例子;

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

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

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

以常用方法:舉例

  • 參數(shù):  (數(shù)組名稱,目標值)
  • 參數(shù):(數(shù)組名稱,查找范圍的初始索引,查找范圍的末端索引,目標值)
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è)有一個二分查找的private私有的算法,不過不同的參數(shù)傳入,最終都是利用該二分查找算法返回目標值的下標

3.Arrays.copyOf()

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

主要作用;對目標數(shù)組復(fù)制,從頭開始復(fù)制長度為n個元素

  • 參數(shù):(目標數(shù)組名稱,需復(fù)制的長度)

觀察源碼:通常創(chuàng)建一個長度為復(fù)制長度的新數(shù)組,再通過System類提供的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()

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

主要作用:對目標數(shù)組復(fù)制,某個區(qū)間

  • 參數(shù)(目標數(shù)組名稱,開始復(fù)制下標,結(jié)束下標(不包含結(jié)束下標位置元素))

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

若下標正常,結(jié)束下標-初始下標即復(fù)制后的新數(shù)組長度,創(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()

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

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

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

觀察源碼:

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

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

例子:

        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類中也是重載。

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

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

觀察源碼

例子:

基本類型數(shù)組

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

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

7.Arrays.toString()

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

  • 參數(shù)(數(shù)組名稱)

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

例子

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

總結(jié) 

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

相關(guān)文章

  • 微信小程序--Ble藍牙

    微信小程序--Ble藍牙

    本文主要介紹了微信小程序--Ble藍牙的實現(xiàn)方法。文中附上源碼下載,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Springboot實現(xiàn)TLS雙向認證的方法

    Springboot實現(xiàn)TLS雙向認證的方法

    本文介紹了使用keytool生成和管理自簽名CA證書、服務(wù)器證書和客戶端證書的方法,適合Java生態(tài)系統(tǒng),通過配置信任庫和服務(wù)器/客戶端配置,實現(xiàn)了Spring Boot中的TLS雙向認證,感興趣的朋友一起看看吧
    2025-02-02
  • Java集合繼承體系詳解

    Java集合繼承體系詳解

    這篇文章主要為大家詳細介紹了Java集合繼承體系,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • MyBatis高級映射學習教程

    MyBatis高級映射學習教程

    這篇文章主要介紹了MyBatis高級映射學習教程的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • Java中Mybatis-Plus使用方式介紹

    Java中Mybatis-Plus使用方式介紹

    Mybatis-Plus提供了多種方式來執(zhí)行SQL,包括使用注解、XML映射文件和?Lambda表達式等,其中,使用Lambda表達式是Mybatis-Plus推薦的方式,因為它更加直觀和類型安全,,需要的朋友可以參考下
    2023-06-06
  • SpringBoot+Prometheus+Grafana實現(xiàn)應(yīng)用監(jiān)控和報警的詳細步驟

    SpringBoot+Prometheus+Grafana實現(xiàn)應(yīng)用監(jiān)控和報警的詳細步驟

    這篇文章主要介紹了SpringBoot+Prometheus+Grafana實現(xiàn)應(yīng)用監(jiān)控和報警的詳細步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 基于Java實現(xiàn)一個復(fù)雜關(guān)系表達式過濾器

    基于Java實現(xiàn)一個復(fù)雜關(guān)系表達式過濾器

    這篇文章主要為大家詳細介紹了如何基于Java實現(xiàn)一個復(fù)雜關(guān)系表達式過濾器。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-07-07
  • Java中實現(xiàn)List分隔成子List詳解

    Java中實現(xiàn)List分隔成子List詳解

    大家好,本篇文章主要講的是Java中實現(xiàn)List分隔成子List詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Java?如何接收kernel傳過來的數(shù)組(推薦)

    Java?如何接收kernel傳過來的數(shù)組(推薦)

    這篇文章主要介紹了Java?如何接收kernel傳過來的數(shù)組,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • SpringBoot靜態(tài)資源的訪問方法詳細介紹

    SpringBoot靜態(tài)資源的訪問方法詳細介紹

    最近在做SpringBoot項目的時候遇到了“白頁”問題,通過查資料對SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-09-09

最新評論