Как добавить определенные данные из CSV-файла в ArrayList - PullRequest
0 голосов
/ 23 июня 2018

У меня есть три * .csv файла, и я использую интерфейс для сравнения объектов.

Мой вопрос таков: как добавить только определенные данные в список массивов?

Например, мне нужно только items[1], равное yearID, items[2], равное teamID, items[11], что составляет homeRuns, и items [12], что составляет RBI значение.

Как добавить их в arrayList, сохраняя при этом значение в классе Batter, а затем передавая список массивов другому классу?Вот первые две строки файла

Batting.cvs

playerID yearID stint teamID lgID G AB RH 2B 3B HR RBI SB CS BB SO IBB HBP SH SF GIDP abercda01 1871 1 TRO NA1 4 0 0 0 0 0 0 0 0 0 0

Batter.java `

import java.util.ArrayList;
import java.util.Scanner;

public class Batter extends Player{
    private  int YearID;
    private String TeamID;
    private int HomeRuns;
    private int RBI;


public Batter(int yearID, String teamID, int homeRuns, int rBI) {
    super();
    YearID = yearID;
    TeamID = teamID;
    HomeRuns = homeRuns;
    RBI = rBI;
}


Batter() throws Exception{
ArrayList<String>  battingData= new ArrayList<String>();
ArrayList<String> masterData= new ArrayList<String>();
ArrayList<String> pitchingData= new ArrayList<String>();

Scanner myScan1= new Scanner(new File("Batting.cvs"));

while(myScan1.hasNext()) {
    while(myScan1.hasNext()) {
        battingData.add(myScan1.nextLine());
        String line= myScan1.nextLine();
        String items[]= line.split(",") 

    for( int i= 0; i<battingData.size(); i++){
        battingData.add(new Players(Integer.parseInt(items[0]));

        }
    }

}

Players.java

import java.util.ArrayList;
import java.util.Arrays;


public class Players {
    private ArrayList Player[];


public Players (String BatData, String PitData,String MasterData) {

}
}

1 Ответ

0 голосов
/ 22 августа 2018

Несколько важных моментов. Вы зацикливались на myScan1.hasNext () дважды без необходимости. Вы также отбрасывали одну строку, так как дважды звонили на nextLine. Я предложил ниже предложение о том, как вы можете достичь того, что вы хотите.

while (myScan1.hasNext()) {
  String line = myScan1.nextLine();
  battingData.add(line);
  String items[]= line.split(",") 

  for( int i= 0; i<battingData.size(); i++){
    String yearID = items[1];
    String teamID = items[2];
    String homeRuns = items[11];
    String rbi = items[12];

    // do what you need to do with these variables
  }
}
...