配列(リスト)のデータ型をを相互に変換するには (asList / asScala / asJava / to_a / toArray)
Java
java.util.List
のインスタンスを配列に変換するには
2013/09/04
ArrayList<String> list = ...;
String[] arr = new String[list.size()];
list.toArray(arr);
配列を java.util.List
に変換するには
2013/09/04
import java.util.Arrays;
String[] arr = ...;
List<String> list = Arrays.asList(arr);
Scala 2013/09/19
ScalaのコレクションからJavaの配列に変換するには
Signature:
// scala.collection.TraversableOnce[A]
def toArray: Array[A]
JavaのコレクションからScalaのコレクションに変換したい場合は、
Javaのコレクションに対して asScala
メソッドを呼び出せばよい。逆にScalaのコレクションをJavaのコレクションに変換したい場合は、
Scalaのコレクションに対して asJava
メソッドを呼び出せばよい。ただし、asScala
や asJava
はScalaの implicit conversions の機能で使えるメソッドで、
scala.collection.JavaConverters._
をインポートしておく必要がある。
import scala.collection.JavaConverters._;
// JavaコレクションからScalaコレクションに変換
javaCollection.asScala
// ScalaコレクションからJavaコレクションに変換
scalaCollection.asJava
Python 2013/10/04
# リストをタプルに変換
tpl = tuple(lst)
# タプルをリストに変換
lst = list(tpl)
# 文字列を1文字ずつの要素のリストに変換
lst = list(str)
Ruby
範囲オブジェクトから配列に変換 2015/01/04
Enumerable#to_a
または Enumerable#entries
を使う。範囲オブジェクト(Range
)はEnumerable
をインクルードしているので、
Enumerable
にあるメソッドを使える。
# 範囲オブジェクト
p (1 .. 10)
# => 1..10
# 配列に変換
p (1 .. 10).to_a
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Array#to_a
, Array#entries
| Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/entries.html
JRuby
Rubyの配列をJavaの配列に変換 2014/12/31
Array#to_java
を使う。
arr = [10, 20, 30, 40, 50]
p arr
# => [10, 20, 30, 40, 50]
p arr.to_java
# => java.lang.Object[10, 20, 30, 40, 50]@214eea30
p arr.to_java.toString()
# => "[Ljava.lang.Object;@43f10665"
p arr.to_java(:int)
# => int[10, 20, 30, 40, 50]@4daf3bc
p arr.to_java(:int).toString()
# => "[I@42b7be21"
p arr.to_java("java.lang.Integer")
# => `java.lang.Integer[10, 20, 30, 40, 50]@35d95c7d`
p arr.to_java("java.lang.Integer").toString()
# => "[Ljava.lang.Integer;@51472e29"
to_java
の引数には以下のようなものを指定できる。指定しないと :object
とみなされる。
:boolean
:char
:byte
:short
:int
:long
:float
:double
:big_integer
:object
:string