AndroidにおけるArrayListと配列の相互変換

3540 ワード

List―�C>配列
皆さんの開発では、Listと配列タイプの間の相互変換によく遭遇するはずです.簡単な例を挙げます.

package test.test1; 
import java.util.ArrayList; 
import java.util.List; 
public class Test { 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
List list=new ArrayList(); 
list.add("   "); 
list.add("  "); 
list.add("  "); 
int size=list.size(); 
String[] array=new String[size]; 
for(int i=0;i 
 

上記のように、ArrayList型のデータをString[]型に変換するには、List型を遍歴しなければならないが、その必要はない.

package test.test1; 

import java.util.ArrayList; 
import java.util.List; 

public class Test { 
public static void main(String[] args) { 
List list=new ArrayList(); 
list.add("   "); 
list.add("  "); 
list.add("  "); 
int size=list.size(); 
String[] array = (String[])list.toArray(new String[size]); 
for(int i=0;i 
 

これこそあなたが望んでいることに気づきましたか?実は簡単で、ListArrayListの方法を提供して、このリストのすべての要素を正しい順序で含む配列を返します.配列を返すランタイムタイプは、配列を指定するランタイムタイプです.指定した配列をリストに入れることができる場合は、このリスト要素を入れる配列を返します.それ以外の場合、指定した配列のランタイムタイプとこのリストのサイズに基づいて新しい配列が割り当てられます.指定した配列がリストを収容し、残りの領域(すなわち、配列の要素がリストよりも多い)を持つ場合、配列の末尾に続く要素はpublic T[] toArray(T[] a)に設定されます.これは、リストの長さを決定するのに役立ちますが、リストにnull要素が含まれていないことを呼び出し元が知っている場合にのみ役立ちます.
配列――>List
では、配列をnull に変換するにはどうすればいいのでしょうか.もう一つの小さな例を見ると、以下のようになります.

package test.test1; 
import java.util.ArrayList; 
import java.util.List; 
public class Test { 
public static void main(String[] args) { 
String[] array=new String[3]; 
array[0]="   "; 
array[1]="  "; 
array[2]="  "; 
List list=new ArrayList(); 
for(int i=0;i 
 

手間がかかることに気づいたのか?実は配列がListに変換された問題ListオブジェクトもArraysに提供され、次の例を実行してみましょう.

package test.test1; 

import java.util.Arrays; 
import java.util.List; 

public class Test { 
public static void main(String[] args) { 
String[] array=new String[3]; 
array[0]="   "; 
array[1]="  "; 
array[2]="  "; 
List list=Arrays.asList(array); 
for(int i=0;i 
 

簡単に言えば、public static List asList(T… a)メソッドは、asListとともに配列ベースのAPIとcollectionベースのAPIとの間の橋渡しとして機能する、指定された配列によってサポートされる固定サイズのリストを返す.返されるリストはシーケンス可能であり、Collection.toArray が実装される.これに加えて、このメソッドは、複数の要素を含むように初期化された固定長のリストを作成する便利な方法を提供します.

package test.test1; 
import java.util.Arrays; 
import java.util.List; 
public class Test1 { 
public static void main(String[] args) { 
List list = Arrays.asList("   ","  ","  "); 
for(int i=0;i 
 

まとめ
以上がAndroidにおけるArrayListと配列の相互変換のすべてであり,本稿の内容がAndroidの開発に役立つことを期待する.疑問があればコメントして討論してもいいです.