簡體   English   中英

如何在Scala 2.7.7中從Iterable創建數組?

[英]How to create an Array from Iterable in Scala 2.7.7?

我正在使用Scala 2.7.7

我在訪問文檔時遇到困難,因此代碼段會很棒。

上下文

我解析一個長度為4或16個字節的IP地址。 我需要一個字節數組,才能傳遞到java.net.InetAddress。 String.split(separator).map(_。toByte)的結果返回給我Iterable的實例。

我看到兩種解決問題的方法

  • 使用長度為16個字節的數組,如果未使用所有字段,則從Iterable過濾它,並返回一部分(如果沒有使用所有函數填充2.7.7中的數組?如何獲得該部分?)。
  • 使用動態長度容器並形成一個數組(哪個容器合適?)。

當前的實現發布在我有關內存泄漏的其他問題中

在Scala 2.7中, Iterable具有一個名為copyToArray的方法。

我強烈建議您不要在這里使用數組,除非您必須使用特定的庫/框架,然后才需要一個數組。

通常,使用本機Scala類型會更好:

String.split(separator).map(_.toByte).toList
//or
String.split(separator).map(_.toByte).toSeq

更新

假設您的原始字符串是主機名的分隔列表,為什么不只是:

val namesStr = "www.sun.com;www.stackoverflow.com;www.scala-tools.com"
val separator = ";"
val addresses = namesStr.split(separator).map(InetAddress.getByName)

這將為您提供InetAddress實例的迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM