В моем проекте мне нужно прочитать в двух разных файлах. Один читает в информации для 5 человек, другой - статистику для этих людей. Они выглядят так:Чтение файлов в два списка ArrayLists
PEOPLE:
1,Skippy,Jones
2,Rod,Stewart
3,Betty,Velveta
4,Gina,Ginger
5,Paul,Funyun
STATS:
1 120
1 130
1 140
1 150
1 160
1 170
1 180
1 190
1 200
1 210
1 220
1 230
2 240
2 250
2 260
ETC....
Я хранение каждого Salesperson
в качестве ArrayList
и хотят хранить каждый из их статистики продаж за каждый месяц в других ArrayList
. Затем я хочу установить эту статистику для каждого человека, а затем распечатать все эти цифры, используя toString()
.
Вопрос: Как я могу установить SalesStats
на каждый месяц для каждого Salesperson
в в SalesPeople ArrayList
?
Salesperson Driver:
public static void main(String[] args) throws FileNotFoundException {
double monthSales = 0;
int currentLine = 0;
int currentLine2 = 0;
int personNumber = 0;
int personNumber2 = 0;
String firstName = "";
String lastName = "";
ArrayList<Salesperson> SalesPeople = new ArrayList<Salesperson>(4);
ArrayList<Double> SalesStats = new ArrayList<Double>(11);
// reads in NewPeople.txt
File NewPeople = new File("./src/NewPeople.txt");
Scanner fileScanner = new Scanner(NewPeople);
// while there is a new line in the data, goes to the next one
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
Scanner lineScanner = new Scanner(line);
lineScanner.useDelimiter(",");
// while there is a new attribute to read in on a given line, reads
// data
while (lineScanner.hasNext()) {
personNumber = lineScanner.nextInt();
firstName = lineScanner.next();
lastName = lineScanner.next();
Salesperson person = new Salesperson(personNumber, firstName, lastName);
SalesPeople.add(currentLine, person);
currentLine++;
}
// reads in SalesFigures.txt
File SalesFigures = new File("./src/SalesFigures.txt");
Scanner fileScanner2 = new Scanner(SalesFigures);
// while there is a new line in the data, goes to the next one
while (fileScanner2.hasNextLine()) {
String line2 = fileScanner2.nextLine();
Scanner lineScanner2 = new Scanner(line2);
lineScanner2.useDelimiter(" ");
// while there is a new attribute to read in on a given line, reads data
while (lineScanner2.hasNext()) {
personNumber2 = lineScanner2.nextInt();
int k = 0;
if(personNumber2 == 1)
{
k = 0;
monthSales = lineScanner2.nextDouble();
SalesStats.add(currentLine2, monthSales);
SalesPeople.get(k).setSalesStats(SalesStats.get(currentLine2)); // need to assign this to all SalesPeople
}
else if(personNumber2 == 2)
{
k = 1;
monthSales = lineScanner2.nextDouble();
SalesStats.add(currentLine2, monthSales);
SalesPeople.get(k).setSalesStats(SalesStats.get(currentLine2));
}
else if(personNumber2 == 3)
{
k = 2;
monthSales = lineScanner2.nextDouble();
SalesStats.add(currentLine2, monthSales);
SalesPeople.get(k).setSalesStats(SalesStats.get(currentLine2));
}
else if(personNumber2 == 4)
{
k = 3;
monthSales = lineScanner2.nextDouble();
SalesStats.add(currentLine2, monthSales);
SalesPeople.get(k).setSalesStats(SalesStats.get(currentLine2));
}
else if(personNumber2 == 5)
{
k = 4;
monthSales = lineScanner2.nextDouble();
SalesStats.add(currentLine2, monthSales);
SalesPeople.get(k).setSalesStats(SalesStats.get(currentLine2));
}
currentLine2++;
}
Salesperson Класс:
public class Salesperson {
private ArrayList<Double> salesStats = new ArrayList<Double>(12);
private int personNumber;
private String firstName;
private String lastName;
public Salesperson(int personNumber, String firstName, String lastName)
{
this.personNumber = personNumber;
this.firstName = firstName;
this.lastName = lastName;
}
public ArrayList<Double> getSalesStats() {
return salesStats;
}
public void setSalesStats(ArrayList<Double> salesStats) {
this.salesStats = salesStats;
}
public int getPersonNumber() {
return personNumber;
}
public void setPersonNumber(int personNumber) {
this.personNumber = personNumber;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String toString()
{
double sum = 0;
for(int i = 0; i < salesStats.size(); i++)
sum += salesStats.get(i);
double min = salesStats.get(0);
double max = salesStats.get(0);
for(double i: salesStats) {
if(i < min) min = i;
if(i > max) max = i;
}
return "Sales statistics for " + firstName + " " + lastName + " :\n" +
"\nSales for January: " + salesStats.get(0) +
"\nSales for February: " + salesStats.get(1) +
"\nSales for March: " + salesStats.get(2) +
"\nSales for April: " + salesStats.get(3) +
"\nSales for May: " + salesStats.get(4) +
"\nSales for June: " + salesStats.get(5) +
"\nSales for July: " + salesStats.get(6) +
"\nSales for August: " + salesStats.get(7) +
"\nSales for September: " + salesStats.get(8) +
"\nSales for October: " + salesStats.get(9) +
"\nSales for November: " + salesStats.get(10) +
"\nSales for December: " + salesStats.get(11) +
"\n Cumulative sales: " + sum +
"\nHighest month of sales: " + max +
"\nLowest month of sales: " + min;
}
}
Пожалуйста, не публикуйте свой полный код - в этом случае некоторый псевдокод, чтобы показать, что вы имели в виду, или даже просто хорошее текстовое описание. Нам не нужен весь проект, чтобы помочь. –