Превратить массив в массив - PullRequest
0 голосов
/ 01 февраля 2012

Это то, что я имею до сих пор

try{
          // Open the file that is the first 
          // command line parameter
          FileInputStream fstream = new FileInputStream("Patient.txt");
          // Get the object of DataInputStream
          DataInputStream in = new DataInputStream(fstream);
          BufferedReader br = new BufferedReader(new InputStreamReader(in));
          String strLine;
          //Read File Line By Line
          List<String> lines = new ArrayList<String>();
          while ((strLine = br.readLine()) != null) {

          }
          //Close the input stream
          in.close();
            }catch (Exception e){//Catch exception if any
          System.err.println("Error: " + e.getMessage());
          }
    ArrayList<Patient1> patients=new ArrayList<Patient1>();
    Patient1 p = new Patient1();
    //set value to the patient object
    patients.add(p);
    System.out.println(p);
    // File i/o

Это мой текстовый файл

001, "John", 17, 100, 65, 110, 110, 110, 109, 111, 114, 113, "Swaying, Nausea"
002, "Sun Min", 18, 101, 70, 113, 113, 110, 119, 111, 114, 113, "None"
003, "Ray Allen", 25, 103, 74, 110, 110, 110, 109, 111, 108, 109, "Difficulty driving"
004, "Michael Jordan", 26, 104, 84, 114, 115, 118, 117, 119, 120, 123, "Loss of        bladder control"
005, "Kobe Bryant", 28, 110, 80, 118, 119, 120, 119, 120, 120, 120, "None"

У меня есть все мои методы и ресурсы, все, что мне нужно сделать, это превратить список массивов в массив, чтобы я мог сделать что-то вроде

    Patient1 average[] = {p[0], p[1], p[2], p[3], p[4]};
    int totalage = 0;
    double totalweight = 0;
    for (int i=0; i<average.length; i++) {
    totalage = (average[i].getAge() + totalage);
    totalweight = (average[i].getWeight() + totalweight);

Ответы [ 3 ]

3 голосов
/ 01 февраля 2012

toArray - это то, что вы хотите.

например,

ArrayList<String> l = something();
String[] foo = l.toArray(new String[foo.size()]);

ArrayList toArray

Редактировать

Посмотрев на ваш пример немного подробнее.Вам не нужно преобразовывать его в массив, вы можете просто вызвать функцию get для массива в вашем цикле и выполнить вычисления.Возможно, вы захотите провести немного времени, глядя на Javadoc.

0 голосов
/ 01 февраля 2012

Если вы хотите читать файл построчно, тогда вы можете использовать класс FileUtils common-io.

Используя FileUtils.readLines(), мы можем читать содержимое файла построчно и возвращать результат в виде списка строк.

Пример:

File file = new File("sample.txt"); 

try { 
List<String> contents = FileUtils.readLines(file); 
for (String line : contents) { 
System.out.println(line);             
} 
} catch (IOException e) { 
e.printStackTrace();     
} 
0 голосов
/ 01 февраля 2012

Используйте вот так

ArrayList<Patient1> patients = new ArrayList<Patient1>();
Patient1 p = new Patient1();
patients.add(p);
String[] pArray = new String[patients.size()];
pArray = patients.toArray(pArray);
for(String s : pArray)
System.out.println(s);

Надеюсь, это поможет вам ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...