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

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

如何在 Clojure 中使用 java.util.stream.Stream?

如何在 Clojure 中使用 java.util.stream.Stream?

ITMISS 2023-11-01 22:19:34
(import java.nio.file.Files)(import java.nio.file.Paths)(import java.util.stream.Stream)(def path   (Paths/get "."     (into-array ["data" "10000000.test.log"])))(def stream   (Files/lines path))這樣我就有了:stream#object[java.util.stream.ReferencePipeline$Head 0x50129b8f"java.util.stream.ReferencePipeline$Head@50129b8f"]有沒(méi)有辦法在不耗盡內(nèi)存的情況下迭代它?對(duì)SO的建議并沒(méi)有多大幫助。文件大約1G。
查看完整描述

2 回答

?
浮云間

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

做與在 java 中做的同樣的事情。對(duì)其調(diào)用互操作方法,例如(.map stream ...)或其他任何方法,然后將其收集到最后的列表中,或減少它,或任何您需要執(zhí)行的操作。

Clojure 函數(shù)不實(shí)現(xiàn)流所需的接口,例如 java.util.function.Function,因此您需要使用 reify 而不是簡(jiǎn)單的fn

(.map stream (reify java.util.function.Function (apply [this x] (foo x))))


查看完整回答
反對(duì) 回復(fù) 2023-11-01
?
拉丁的傳說(shuō)

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

您可能需要研究一個(gè)名為ike.cljj 的庫(kù)來(lái)了解一些互操作細(xì)節(jié)。



查看完整回答
反對(duì) 回復(fù) 2023-11-01
?
梵蒂岡之花

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

我想迭代流 Java/命令式風(fēng)格以避免堆爆。我不需要減少流,我需要處理每一行并取出一個(gè)字段并將其發(fā)送出去。我認(rèn)為為此我可能最好使用doseq。

(doseq 
  [l (iterator-seq (.iterator stream))] 
    (println l))


查看完整回答
反對(duì) 回復(fù) 2023-11-01
  • 2 回答
  • 0 關(guān)注
  • 178 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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