2017-04-14 9 views
-1

私は2つのクラスCsvReadとMyOwnClassを持っています。Java変換リスト<String>リスト<Object>

CsvReadでは、私はメソッドを持っていますpublic static List getDataFromCsv();すべてのデータのリストを返します。そして、私はクラスMyOwnClass内の別の方法で取り、私のOwnClass

のオブジェクトのリストは、それはこのようになりますようそこに戻りたい、このデータ:

List<String> dataFromCsv = new ArrayList<String>(); 

と別のクラスでは、私はそれを変換したいです私のクラスのList<Object>。配列が必要なもののリストが見つかりました:私はnew MyOwnClass(name, surname, birth);

MY ERRORを返したい

private static List<String> getDataFromCsvClass = new ArrayList<String>(); 
getDataFromCsvClass = CsvReader.getAllCsvData(filename); 
String name = dataFromCsv[0]; 
String surname = dataFromCsv[1]; 
String birth = dataFromCsv[2]; 

文字列名= ALLDATA [0];さんがnamesurnameカンマが含まれていると言ってみましょう場合など

+5

あなたのリストを返しますか? –

+0

CsvClassの私のメソッドの1つは、すべてのcsvデータを含むStringのリストを返します。別のクラスでは、このデータを持ち帰り、リストに割り当て、次にオブジェクトのリストを返します。自分のクラス – Smithy

+0

別のクラスのファイルからcsvデータを取り込むメソッドに含まれています – Smithy

答えて

2

あなたは例えば、StringMyOwnClassに変換し、要素をマッピングするためにstreamを使用するmethodを作成することができます。:

public static MyOwnClass convertToObject(String element){ 
    String[] tokens = element.split(","); 
    return new MyOwnClass(tokens[0], tokens[1], tokens[2]); 
} 

//code to convert 
List<String> dataFromCsv = new ArrayList<String>(); 
List<MyOwnClass> list = dataFromCsv.stream() 
.map(e -> convertToObject(e)) 
.collect(Collectors.toList()); 

をしかし、これは動作しない場合があります。この場合、私はOpenCSVライブラリとthisを見て、オブジェクトにcsvを読み込む方法の例をお勧めします。

0

3つの文字列のすべてのグループ(つまり、インデックス0,3,6,9などの要素に名前が含まれる)に名前、姓、生年月日が含まれているとすると、次のように試してみることができます。

このような
public List<MyOwnClass> convertCsvData(List<String> csv_data) 
{ 
    // Initialize result 
    List<MyOwnClass> result; 
    result = new ArrayList<MyOwnClass>(); 

    // Parse data 
    int counter; 
    String name; 
    String surname; 
    String birth; 
    for (counter = 0; counter < csv_data.size(); counter += 3) 
    { 
    name = csv_data.get(counter); 
    surname = csv_data.get(counter + 1); 
    birth = csv_data.get(counter + 2); 
    result.add(new MyOwnClass(name, surname, birth)); 
    } 

    // Done 
    return (result); 

} // convertCsvData 
0

気にいら:

private static MyOwnClass toMyOwnClass(String str){ 
String[] object= str.split(","); 
return new MyOwnClass(object[0], object[1], object[2]); 
} 



List<String> dataFromCsv = new ArrayList<String>(); 
List<MyOwnClass> list = new ArrayList<>(); 

for(String string : dataFromCsv){ 
    if(StringUtils.isNoneEmpty(string)){ 
    list.add(toMyOwnClass(string)); 
    } 
} 

そして、あなたはあなたの問題は何

関連する問題