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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將Java 8流轉(zhuǎn)換為數(shù)組?

如何將Java 8流轉(zhuǎn)換為數(shù)組?

將Java 8 Stream轉(zhuǎn)換為數(shù)組的最簡(jiǎn)單/最簡(jiǎn)單的方法是什么?
查看完整描述

3 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

最簡(jiǎn)單的方法是使用toArray(IntFunction<A[]> generator)帶有數(shù)組構(gòu)造函數(shù)引用的方法。這在方法的API文檔中有所建議。


String[] stringArray = stringStream.toArray(String[]::new);

它的作用是找到一個(gè)方法,它接受一個(gè)整數(shù)(大?。┳鳛閰?shù),并返回一個(gè)String[],這正是(其中一個(gè)重載)的new String[]作用。


你也可以寫(xiě)自己的IntFunction:


Stream<String> stringStream = ...;

String[] stringArray = stringStream.toArray(size -> new String[size]);

這樣做的目的IntFunction<A[]> generator是將一個(gè)整數(shù)(數(shù)組的大?。┺D(zhuǎn)換為一個(gè)新數(shù)組。


示例代碼:


Stream<String> stringStream = Stream.of("a", "b", "c");

String[] stringArray = stringStream.toArray(size -> new String[size]);

Arrays.stream(stringArray).forEach(System.out::println);

打印:


a

b

c


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果你想從一個(gè)Stream獲得一個(gè)整數(shù)數(shù)組,值為1到10,你可以使用IntStream。


在這里,我們使用Stream.of方法創(chuàng)建Stream,并使用mapToInt將Stream轉(zhuǎn)換為IntStream。然后我們可以調(diào)用IntStream的toArray方法。


Stream<Integer> stream = Stream.of(1,2,3,4,5,6,7,8,9,10);

//or use this to create our stream 

//Stream<Integer> stream = IntStream.rangeClosed(1, 10).boxed();

int[] array =  stream.mapToInt(x -> x).toArray();

如果沒(méi)有Stream,只使用IntStream,這是同樣的事情


int[]array2 =  IntStream.rangeClosed(1, 10).toArray();


查看完整回答
反對(duì) 回復(fù) 2019-09-18
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用這個(gè)簡(jiǎn)單的代碼塊將java 8流轉(zhuǎn)換為數(shù)組:


 String[] myNewArray3 = myNewStream.toArray(String[]::new);

但是讓我們更多地解釋一下,首先,讓我們創(chuàng)建一個(gè)填充了三個(gè)值的字符串列表:


String[] stringList = {"Bachiri","Taoufiq","Abderrahman"};

從給定的數(shù)組創(chuàng)建一個(gè)流:


Stream<String> stringStream = Arrays.stream(stringList);

我們現(xiàn)在可以在這個(gè)流Ex上執(zhí)行一些操作:


Stream<String> myNewStream = stringStream.map(s -> s.toUpperCase());

最后使用以下方法將其轉(zhuǎn)換為java 8數(shù)組:


1-Classic方法(功能界面)


IntFunction<String[]> intFunction = new IntFunction<String[]>() {

    @Override

    public String[] apply(int value) {

        return new String[value];

    }

};



String[] myNewArray = myNewStream.toArray(intFunction);

2 -Lambda表達(dá)


 String[] myNewArray2 = myNewStream.toArray(value -> new String[value]);

3-方法參考


String[] myNewArray3 = myNewStream.toArray(String[]::new);

方法參考說(shuō)明:


這是編寫(xiě)lambda表達(dá)式的另一種方式,它完全等同于另一種。


查看完整回答
反對(duì) 回復(fù) 2019-09-18
  • 3 回答
  • 0 關(guān)注
  • 2139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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