亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Java Stream 映射或創建 FileStream 的新對象

Java Stream 映射或創建 FileStream 的新對象

慕絲7291255 2023-09-27 10:34:12
如果我有一個制表符分隔的文件,當我使用該BufferedReader對象時,我可以使用 Stream Api,如過濾器、映射、減少等方法,因此如果 Stream //first Line is Header Identified by # #  SUBSTANCE   2,60    25.04.2012  00:02:48    01.01.2000  24.04.2012 //this is my R Object which has attached two RN Objects R  10  -   016-053-00-8    402-460-1   0   0   0   0   0   0 RN 10  0   DE  (C16oderC18-n-Alkyl)(C16oderC18-n-alkyl)ammonium-2-((C16oderC18-n-alkyl)(C16oderC18-n-alkyl)carbamoyl)benzolsulfonat RN 10  0   EN  (C16orC18-n-alkyl)(C16orC18-n-alkyl)ammonium 2-((C16orC18-n-alkyl)(C16orC18-n-alkyl)carbamoyl)benzenesulfonate我需要創建一個對象或像嵌套數組一樣的 MAP (Header, rObject (rnObject,rnObject)),那么我可以使用 Stream API 來執行此操作嗎?我已經嘗試過了    BufferedReader in = new BufferedReader(new FileReader(absoluteFilePath));    List test = in.lines().limit(4).filter(identifier -> identifier.startsWith("RN")).map(line -> line.split("\\t")).collect(Collectors.toList());很明顯,自從我得到輸出以來它就不起作用了    test.forEach(it -> System.out.println(it));    [Ljava.lang.String;@326de728    [Ljava.lang.String;@25618e91所以我想我可以使用 Stream Api 創建一個 Map,所以我認為我想要的方式是不可能的,所以我可以創建一個 while lop 并創建你認為的對象?
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

最好的辦法是將列表正確識別為字符串列表,并且不要使用原始列表。

由于拆分的結果是一個字符串數組,因此您必須將其包裝為列表。

然后你將得到一個列表列表,為此使用 flatMap 將所有列表合并為一個唯一的列表,然后你將能夠使用收集器并將其存儲在單個列表中。

List<String> test = in.lines().limit(4).filter(identifier -> identifier.startsWith("RN")).map(line -> Arrays.asList(line.split("\\t"))).flatMap(List::stream).collect(Collectors.toList());

您的示例的主要問題是您正在存儲數組對象的原始列表。因此,當您在數組中調用 toString() 時,您會得到以方括號開頭的 hashReference。

希望這對您有幫助!


查看完整回答
反對 回復 2023-09-27
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號