0

Hi!
I'm working on a school project and ran into a problem.
We're creating an ArrayList of basketball games where each game is set up as:

public Game (String homeTeam, int htScore, String opponent, int oppScore)
    {
        this.homeTeam = homeTeam;
        this.htScore = htScore;
        this.opponent = opponent;
        this.oppScore = oppScore;
    }

One of the tasks is to find the average of the Home team scores.
I don't understand how to go through and just select that element from the index.

Right now I have:

int homesum = 0;
        for (int i = 0; i < this.size(); i++)
        {
         homesum = homesum + Integer.parseInt(theDB.get(i).htScore);
        }

but I realize that won't work.

Any help would be appreciated.
Thanks!

3
Contributors
3
Replies
4
Views
4 Years
Discussion Span
Last Post by gagirl1105
Featured Replies
  • 1. Declare and initialise your ArrayList as as ArrayList of Games to avoid casting and possible errors [ICODE]ArrayList<Game> theDB = new ArrayList<Game>();[/ICODE] 2. htScore is already an int, so there's no need to use [ICODE]Integer.parseInt[/ICODE] - that's just for where the data is in a String. [ICODE] homesum += theDB.get(i).getHtScore();[/ICODE] … Read More

0

actually, that is half the work.
allthough it's better to write it a bit like:

... Integer.parseInt(((Game)theDB.get(i)).getHTScore());

allowing your instance variables to be public accessible is a bit risky, using mutotars (setter-s / getter(s)) is a better approach.

next to that, you'll need to keep a counter, that counts the number of scores, and that divide the homesum value with the value of that counter after the last iteration.

1

1. Declare and initialise your ArrayList as as ArrayList of Games to avoid casting and possible errors ArrayList<Game> theDB = new ArrayList<Game>(); 2. htScore is already an int, so there's no need to use Integer.parseInt - that's just for where the data is in a String. homesum += theDB.get(i).getHtScore(); where getHtScore() is a public accessor method that returns the value of htScore.

3. No need to keep a counter, you can use theDB.size()

Edited by JamesCherrill: n/a

0

Thank you both very much!
With your help, I came up with:

int homesum = 0;
        for (int i = 0; i < theDB.size(); i++)
        {
         homesum += theDB.get(i).getHtScore();
         }
        int homeaverage = homesum/theDB.size();
            
        System.out.println("Mean Home Team score: " + homeaverage);
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.