亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java 8增強的工具類 Arrays(一)

2019-11-14 12:35:13
字體:
來源:轉載
供稿:網友

Arrays是一個java.util包下的一個數組工具類,提供了大量的static方法用來對數組進行操作,方便程序員開發中使用。具體方法如下:

 

一、搜索方法:

1.1、int binarySearch(type[] a ,type key)

作用:使用二分法,從一個數組中查找key的下標值,如果存在返回下標,如果不存在返回值為負數。

源碼中,對這個方法進行是重載,參數的類型在變化,從8個基本數據類型 ,到Object以及自定義的類型都可以使用該方法進行查找元素。

1.2、int binarySearch(type[] a ,type key,int fromIndex,int toIndex)

作用:重載上一個方法,增加了開始下標和結束下標,也就是規定了查找的范圍。

1.3、源碼:

PRivate static int binarySearch0(long[] a, int fromIndex, int toIndex,long key) {

        int low = fromIndex;

        int high = toIndex - 1;

 

        while (low <= high) {

            int mid = (low + high) >>> 1;

            long midVal = a[mid];

 

            if (midVal < key)

                low = mid + 1;

            else if (midVal > key)

                high = mid - 1;

            else

                return mid; // key found

        }

        return -(low + 1);  // key not found.

  }

解讀:獲取任意類型的數組,一個對應類型的元素key,還有int類型的開始和結束下標,為了公用一個算法方法,我們先給定兩個局部變量,如果沒有指定開始和結束下標那么指定從0開始到數組a的長度-1結束。然后循環,循環判定條件是最小范圍值小于等于最大范圍值。然后中間值和key的比較,確定范圍,最后確定key所在位置的index,直接返回。如果沒有該值,直接返回負數。

 

二、復制方法:

2.1、type[] copyOf(type[] original,int length)

作用:復制original數組到一個新數組,length為新數組的長度,如果length的值大于original的長度,那么新數組的其他值補0,0.0,false,null等

2.2、type[] copyOfRange(type[] original,int fromIndex,int toIndex)

作用:該方法是上面方法的重載,規定了開始復制的下標和結束復制的下標,也就是復制規定位置的數組元素到新數組中。

2.3、源碼:

public static byte[] copyOf(byte[] original, int newLength) {

        byte[] copy = new byte[newLength];

        System.arraycopy(original, 0, copy, 0,

                         Math.min(original.length, newLength));

        return copy;

}

 

public static native void arraycopy(Object src,  int  srcPos,

                                        Object dest, int destPos,

                                        int length);

Java中這個方法是調用了System類中的arraycopy方法實現的,但是arraycopy有一個修飾符native是咋回事了?如果方法用native關鍵字修飾,說明該方法有實現,但不是使用java代碼實現的,它的實現是在一個DLL文件中,可能使用C語言等其他語言實現,方便了java和硬件的交互,缺點是增加開銷。Native方法也被稱為本地方法。

 

public static byte[] copyOfRange(byte[] original, int from, int to) {

        int newLength = to - from;

        if (newLength < 0)

            throw new IllegalArgumentException(from + " > " + to);

        byte[] copy = new byte[newLength];

        System.arraycopy(original, from, copy, 0,

                         Math.min(original.length - from, newLength));

        return copy;

}

解讀:先計算出新數組的長度,使用結束下標-開始下標,如果小于0,說明結束下標小于開始下標,這樣不成立,所以手動拋出異常。然后調用System類的arraycopy方法,執行。

2.4、啟發:寫代碼要有一定的嚴謹性,有開始結束的位置下標,一定要比較兩個的大小,拋出異常。

我們也可以直接調用System類的arraycopy方法,對數組直接進行賦值

 

三、判斷方法:

3.1、boolean equals(long[] a1,long[] a2)

作用:判斷兩個數組的長度和內容是否相同(數組元素必須一一對應并相同)

3.2、源碼:

 public static boolean equals(long[] a, long[] a2) {

        if (a==a2)

            return true;

        if (a==null || a2==null)

            return false;

 

        int length = a.length;

        if (a2.length != length)

            return false;

 

        for (int i=0; i<length; i++)

            if (a[i] != a2[i])

                return false;

 

        return true;

}

 

四、賦值方法:

4.1、void fill(type[] a,type val)

作用:將數組中的所有元素都賦值為val

4.2、void fill(type[] a,int fromIndex,int toIndex,type val)

作用:同上相同,指定了開始和結束的范圍

4.3、源碼:

public static void fill(byte[] a, byte val) {

        for (int i = 0, len = a.length; i < len; i++)

            a[i] = val;

}

 

 public static void fill(byte[] a, int fromIndex, int toIndex, byte val) {

        rangeCheck(a.length, fromIndex, toIndex);

        for (int i = fromIndex; i < toIndex; i++)

            a[i] = val;

}

 

//范圍檢查方法

private static void rangeCheck(int length, int fromIndex, int toIndex) {

        if (fromIndex > toIndex) {

            throw new IllegalArgumentException(

                "fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")");

        }

        if (fromIndex < 0) {

            throw new ArrayIndexOutOfBoundsException(fromIndex);

        }

        if (toIndex > length) {

            throw new ArrayIndexOutOfBoundsException(toIndex);

        }

}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲视频一区二区| 国产一区二区三区四区福利| 日韩av电影在线播放| 日韩少妇与小伙激情| 亚洲欧美国产精品va在线观看| 久久五月情影视| 午夜精品蜜臀一区二区三区免费| 美女国内精品自产拍在线播放| 国产精品第10页| 国产a∨精品一区二区三区不卡| 国产日韩精品在线播放| 91精品国产九九九久久久亚洲| 中文字幕自拍vr一区二区三区| 国产在线观看不卡| 久久成人av网站| 久久免费视频在线观看| 亚洲美女自拍视频| 成人福利在线视频| 日韩精品免费综合视频在线播放| 国产亚洲美女久久| 青青在线视频一区二区三区| 日韩中文在线中文网在线观看| 日韩美女在线看| 91麻豆桃色免费看| 欧美日韩国产激情| 亚洲精品videossex少妇| 九九热精品视频| 欧美丝袜美女中出在线| 欧美亚洲在线观看| 91香蕉电影院| 九九九久久国产免费| 91久久久久久久| 欧美精品video| 国产日产久久高清欧美一区| 日韩中文字幕久久| 91po在线观看91精品国产性色| 伊人久久男人天堂| 久久影视三级福利片| 国产精品a久久久久久| 亚洲综合最新在线| 国产精品普通话| 亚洲一区二区自拍| 久久久www成人免费精品| 欧美另类暴力丝袜| 久久电影一区二区| 91av在线精品| 中文国产亚洲喷潮| 欧美性色视频在线| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精彩中文乱码av| 不卡在线观看电视剧完整版| 亚洲免费视频网站| 久久免费国产视频| 亚洲欧美在线第一页| 成人免费看吃奶视频网站| 欧美精品在线看| 亚洲精品98久久久久久中文字幕| 久久九九精品99国产精品| 日韩午夜在线视频| 欧美wwwxxxx| 国产日韩精品在线| 欧美日韩国产在线看| 国产日韩精品综合网站| 成人精品在线观看| 亚洲日韩中文字幕在线播放| 狠狠色狠狠色综合日日五| 激情亚洲一区二区三区四区| 亚洲美女性生活视频| 一个人看的www欧美| 久久久www成人免费精品张筱雨| 久久91精品国产91久久跳| 国产精品av在线播放| 国产精品专区第二| 欧美亚洲国产日本| 亚洲欧美精品中文字幕在线| 国产精品久久久久久久久久ktv| 韩国三级电影久久久久久| 欧美黑人巨大xxx极品| 日韩在线视频线视频免费网站| 亚洲精品国偷自产在线99热| 亚洲欧美日韩在线高清直播| 亚洲精品av在线播放| 久久久精品久久久久| 在线观看精品自拍私拍| 57pao国产成人免费| 少妇高潮久久77777| 热re91久久精品国99热蜜臀| 中文字幕精品在线视频| 欧美色播在线播放| 亚洲福利视频专区| 精品国产鲁一鲁一区二区张丽| 国产亚洲精品美女久久久| 日韩亚洲在线观看| 国产热re99久久6国产精品| 日韩不卡中文字幕| 搡老女人一区二区三区视频tv| 欧美在线视频免费播放| 亚洲自拍偷拍视频| 欧美性xxxx在线播放| 91免费福利视频| 中文字幕亚洲无线码a| 尤物九九久久国产精品的分类| 日韩在线精品视频| 国产日韩欧美在线| 亚洲人成电影网站色| 久久久久久12| 日韩av电影手机在线观看| 91精品国产99久久久久久| 国产伦精品一区二区三区精品视频| 成人精品福利视频| 欧美日韩免费区域视频在线观看| 精品国产一区二区三区久久| 日韩精品中文字幕有码专区| 日韩国产欧美精品一区二区三区| 欧美高清视频免费观看| 国产精品日韩一区| 国产亚洲a∨片在线观看| 在线视频免费一区二区| 国产精品扒开腿做爽爽爽视频| 91精品国产91久久久久久吃药| 91视频-88av| 97av视频在线| 久久精品国产免费观看| 国产自产女人91一区在线观看| 日韩av成人在线观看| 欧美另类极品videosbest最新版本| 亚洲国产成人一区| 欧美视频在线观看免费网址| 欧美日韩美女在线观看| 亚洲一区二区三区四区在线播放| 国产亚洲精品久久| 久久久久久国产精品三级玉女聊斋| 国产精品久久久久久久久久久久久| 亚洲精品乱码久久久久久金桔影视| 欧美高清第一页| 在线播放亚洲激情| 欧美成人黄色小视频| 久久久精品美女| 国产一区二区三区视频| 色妞在线综合亚洲欧美| 亚洲性生活视频在线观看| 91深夜福利视频| 最近2019好看的中文字幕免费| 97超碰蝌蚪网人人做人人爽| 最新国产成人av网站网址麻豆| 国产精品日日做人人爱| 亚洲第一二三四五区| 精品久久久视频| 欧美性猛交xxxx黑人| 91国产精品视频在线| 日韩视频精品在线| 国产成人avxxxxx在线看| 精品亚洲aⅴ在线观看| 国产一区二区三区毛片| 91免费在线视频网站| 欧美日韩一区二区免费视频| 97香蕉超级碰碰久久免费软件| 蜜月aⅴ免费一区二区三区| 美女扒开尿口让男人操亚洲视频网站| 日韩在线观看免费高清完整版| 中文字幕亚洲综合久久筱田步美| 久久久噜噜噜久久中文字免| 欧美体内谢she精2性欧美| 日韩美女写真福利在线观看|