我在cpp中使用這個(gè)宏forn(i,3) cin>>arr[n]; //assume arr initialised earlier所以我嘗試使用 lambda 和 IntStream 在 Java 中實(shí)現(xiàn)這一點(diǎn) Scanner sc = new Scanner(System.in);
IntStream.range(0, 5).map(i->arr[i]).forEach(e->e=sc.nextInt());但我知道流不會(huì)操縱底層數(shù)據(jù)結(jié)構(gòu)。那么我可以使用流來(lái)實(shí)現(xiàn)這一點(diǎn),還是必須創(chuàng)建自己的功能接口來(lái)實(shí)現(xiàn)這一點(diǎn)?謝謝
2 回答

江戶川亂折騰
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
只需將您的代碼更改為
Scanner sc = new Scanner(System.in); IntStream.range(0, 5).forEach(i -> arr[i] = sc.nextInt());
但還要注意,這對(duì)于 Streams 來(lái)說(shuō)并不是一個(gè)很好的用例。一個(gè)簡(jiǎn)單的循環(huán)可能更合適。

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
在映射作為輸入提供的整數(shù)時(shí),您似乎正在尋找toArray
with的使用:IntStream
int arr[] = IntStream.range(0, 5).map(i -> sc.nextInt()).toArray()
添加回答
舉報(bào)
0/150
提交
取消