配列(リスト)のデータ型をを相互に変換するには (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