第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當(dāng)使用toArray()方法[保持]時,String的大小如何自動增加

當(dāng)使用toArray()方法[保持]時,String的大小如何自動增加

尚方寶劍之說 2019-04-26 22:15:17
我試圖使用T [] toArray(T [] obj)將arrayList轉(zhuǎn)換為數(shù)組。我傳遞的大小為0的字符串?dāng)?shù)組小于arrayList的大小。它應(yīng)該拋出ArrayIndexOutOfBoundsException,但它正常工作并打印所有元素。字符串?dāng)?shù)組大小如何增加?ArrayList<String> al=new ArrayList<>();al.add("a");al.add("b");al.add("c");String[] str=al.toArray(new String[0]);*//passing a string object of size 0*for(String ele: str){    System.out.println(ele);*//prints every elements in the arraylist*}預(yù)期結(jié)果:線程“main”java.lang.ArrayIndexOutOfBoundsException中的異常
查看完整描述

4 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊

我不知道為什么你認(rèn)為它應(yīng)該拋出ArrayIndexOutOfBoundsException,因為文檔說不然:

如果列表適合指定的數(shù)組,則返回其中。否則,使用指定數(shù)組的運行時類型和此列表的大小分配新數(shù)組。


查看完整回答
反對 回復(fù) 2019-05-15
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊

你應(yīng)該閱讀文檔

toArray(T[]):以適當(dāng)?shù)捻樞蚍祷匕肆斜碇兴性氐臄?shù)組(從第一個元素到最后一個元素)

參數(shù):a - 要存儲此列表元素的數(shù)組(如果它足夠大); 否則,為此目的分配相同運行時類型的新數(shù)組。

因此,返回的數(shù)組始終包含列表的所有元素,因為如果傳遞的數(shù)組小于列表的大小,則會創(chuàng)建新數(shù)組。

如果您需要創(chuàng)建一個只包含部分元素的數(shù)組,您可以使用List.subList()

String[] array = list.subList(0, 3).toArray(new String[3]);


查看完整回答
反對 回復(fù) 2019-05-15
?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊

這是因為toArray()如有必要,會調(diào)整它的大小:

@SuppressWarnings("unchecked")
    public <T> T[] toArray(T[] a) {
        if (a.length < size)
            // Make a new array of a's runtime type, but my contents:
            return (T[]) Arrays.copyOf(elementData, size, a.getClass());
        System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }

請注意該部分if (a.length < size),Array如果您傳遞的部分不夠大,它將調(diào)整大小。因此,最好寫一下:

String[] str=al.toArray(new String[al.size()]);


查看完整回答
反對 回復(fù) 2019-05-15
?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊

來自文檔

以適當(dāng)?shù)捻樞蚍祷匕肆斜碇兴性氐臄?shù)組(從第一個元素到最后一個元素); 返回數(shù)組的運行時類型是指定數(shù)組的運行時類型。如果列表適合指定的數(shù)組,則返回其中。否則,將使用指定數(shù)組的運行時類型和此列表的大小分配新數(shù)組。


換句話說,如果元素不適合給定的元素,它會創(chuàng)建一個新數(shù)組。


查看完整回答
反對 回復(fù) 2019-05-15
  • 4 回答
  • 0 關(guān)注
  • 828 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號