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

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

在 Java 中將 scala Seq[Double] 轉換為 Java List<Double>

在 Java 中將 scala Seq[Double] 轉換為 Java List<Double>

白衣非少年 2023-10-12 16:43:03
我一直在處理這個問題,我想將 Scala 轉換Seq[Double]為 Java List<Double>。我發現的所有內容都顯示了如何從 Scala 中完成此操作,但我找不到如何從 Java 中完成此操作。這就是我所擁有的:private void fun(Seq<scala.Double> scalaSeq) {     List<java.lang.Double> l = JavaConverters.seqAsJavaList(scalaSeq).stream().map(a -> java.lang.Double.valueOf(a.toString())).collect(Collectors.toList()); }所以基本上,我將 scala 轉換Seq為 Java List,對其進行流式傳輸,然后將 Scala 字符串轉換Double為 Java Double。我嘗試使用Double::box,但當我嘗試這樣做時,編譯器拒絕編譯。顯然需要一個java.lang.Double?我想知道是否有更直接的方法來執行此操作,并希望將其記錄下來以供將來參考。有什么建議么?
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

Seq<scala.Double>據我所知,在 Java 中沒有用(除非它在以后的 Scala 版本中發生了變化)。相反,ScalaSeq[Double]將具有Seq<Object>從 Java 中看到的類型。然而,它實際上會包含java.lang.Double對象,所以只是“作弊”

@SuppressWarnings("unchecked")private void fun(Seq<Object> scalaSeq) {
    List<Double> l = (List<Double>) (List<?>) JavaConverters.seqAsJavaList(scalaSeq);
}

或者

@SuppressWarnings("unchecked")
private void fun(Seq<Object> scalaSeq) {
    List<Double> l = JavaConverters.seqAsJavaList((Seq<Double>) (Seq<?>) scalaSeq);
}

(所有Doublejava.lang.Double)應該工作得足夠好。


查看完整回答
反對 回復 2023-10-12
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

你可以試試這個:

.map(s-> java.lang.Double.parseDouble(s.toString()));


查看完整回答
反對 回復 2023-10-12
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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