Java转换列表<;字符串>;列出<;对象>;

Java转换列表<;字符串>;列出<;对象>;,java,Java,我有两个班,一个是CsvRead班,另一个是MYOWN班 在CsvRead中,我有一个方法public static List getDataFromCsv();它返回所有数据的列表。我想在MyOwnClass类中的另一个方法中获取这些数据,并将其作为我自己类的对象列表返回 看起来是这样的: List<String> dataFromCsv = new ArrayList<String>(); List dataFromCsv=new ArrayList(); 在另一

我有两个班,一个是CsvRead班,另一个是MYOWN班

在CsvRead中,我有一个方法public static List getDataFromCsv();它返回所有数据的列表。我想在MyOwnClass类中的另一个方法中获取这些数据,并将其作为我自己类的对象列表返回

看起来是这样的:

List<String> dataFromCsv = new ArrayList<String>();
List dataFromCsv=new ArrayList();
在另一个类中,我想将其转换为类的
List

private static List<String> getDataFromCsvClass = new ArrayList<String>();
getDataFromCsvClass = CsvReader.getAllCsvData(filename);
String name = dataFromCsv[0];
String surname = dataFromCsv[1];
String birth = dataFromCsv[2];
private static List getDataFromCsvClass=new ArrayList();
getDataFromCsvClass=CsvReader.getAllCsvData(文件名);
字符串名称=dataFromCsv[0];
字符串姓氏=dataFromCsv[1];
字符串birth=dataFromCsv[2];
我想返回
新的MyOwnClass(姓名、姓氏、出生)


我的错误:需要数组,但找到列表:String name=allData[0];etc

您可以创建
方法
字符串
转换为
MyOwnClass
并使用
映射元素,例如:

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());
公共静态MyOwnClass convertToObject(字符串元素){
String[]tokens=element.split(“,”);
返回新的MyOwnClass(令牌[0]、令牌[1]、令牌[2]);
}
//要转换的代码
List dataFromCsv=new ArrayList();
List List=dataFromCsv.stream()
.map(e->convertToObject(e))
.collect(Collectors.toList());

但是,如果说
name
姓氏
包含逗号,则这可能不起作用。在这种情况下,我建议您查看
OpenCSV
库以及如何将csv读入对象的示例。

假设列表中包含名称、姓氏和出生,每组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
public List convertCsvData(列出csv_数据)
{
//初始化结果
列出结果;
结果=新的ArrayList();
//解析数据
整数计数器;
字符串名;
串姓;
串珠出生;
用于(计数器=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));
   }
 }
私有静态MyOwnClass toMyOwnClass(String str){
String[]object=str.split(“,”);
返回新的MyOwnClass(对象[0],对象[1],对象[2]);
}
List dataFromCsv=new ArrayList();
列表=新的ArrayList();
for(字符串:dataFromCsv){
if(StringUtils.isnonempty(string)){
添加(toMyOwnClass(string));
}
}

然后你返回你的列表

你有什么问题吗?我在CsvClass中的一个方法返回所有csv数据的字符串列表。在另一个类中,我想获取这些数据,将其分配给List和next return List of objects我自己的ClassIt’s included in方法,该方法从另一个类中的文件中获取csv数据。你的意思是每3个字符串包含名称、姓氏和出生?换句话说,数据[3]包含第二个元素的名称?我有两个classess CsvRead和MyOwnClass。