David Brewer
David Brewer

Reputation: 53

Adding values to ArrayLists using OOP

I have a guide for this program and I am supposed to use an object CO2 somehow and add the values in. I am not sure where to implement the object CO2 that is declared in the beginning and i am getting a cannot find symbol error whenever i try to add to the list. I am using to classes to achieve this.

CO2 FROM ELECTRICITY TESTER CODE

/**
 * @purpose: Calculate yearly CO2 emissions from electricity 8.10
 *
 * @author:
 * @version:
 */
import java.util.ArrayList;

public class CO2FromElectricityTester {

    public static void main(String[] args) {
        CO2FromElectricity CO2 = new CO2FromElectricity();

        ArrayList<Double> monthlyBill = new ArrayList<Double>(3);

        ArrayList<Double> monthlyPrice = new ArrayList<Double>(3);

        // Values to add to the monthly bill or use your own:
        // 209.60, 249.68. 222.59
        monthylyBill.add(209.60);
        monthylyBill.add(249.68);
        monthylyBill.add(222.59);

        // Values to add to the monthly Price or use your own:
        // (209.70 / 2464), (249.68 / 2948), (222.59 / 2621)
        monthylyPrice.add(0.24);
        monthylyPrice.add(0.35);
        monthylyPrice.add(0.27);

        double avgBill = CO2.calcAverageBill(monthlyBill);
        double avgPrice = CO2.calcAveragePrice(monthlyPrice);

        double emissions = CO2.calcElectricityCO2(avgBill, avgPrice);

        System.out.printf("Average Monthly Electricity Bill: %6.2f%n", avgBill);
        System.out.printf("Average Monthly Electricity Price: %4.2f%n", avgPrice);
        System.out.printf("Annual CO2 Emissions from Electricity Usage:   %7.1f pounds", emissions);
    }
}

CO2 FROM ELECTRICITY CLASS

import java.util.ArrayList;

public class CO2FromElectricity

{
    CO2FromElectricity() {
        // default constructor should be used.
    }

    public double calcAverageBill(ArrayList<Double> monthlyBill) {
        double sum = 0;
        for (int i = 0; i < monthlyBill.size(); i++) {
            sum += monthlyBill.get(i);
        }
        return ((double) sum) / monthlyBill.size();
    }

    public double calcAveragePrice(ArrayList<Double> monthlyPrice) {
        double sum = 0;
        for (int i = 0; i < monthlyPrice.size(); i++) {
            sum += monthlyPrice.get(i);
        }
        return ((double) sum) / monthlyPrice.size();
    }

    public double calcElectricityCO2(double avgBill, double avgPrice) {
        return ((double) (avgBill / avgPrice) * 1.37 * 12);
    }
}

Upvotes: 0

Views: 227

Answers (2)

Ashwin Gupta
Ashwin Gupta

Reputation: 2197

The problem is a simple typo:

monthylyPrice.add(0.24);
 monthylyPrice.add(0.35);
 monthylyPrice.add(0.27);

should be "monthlyPrice" not "monthylyPrice"

Upvotes: 1

Maximilian Gerhardt
Maximilian Gerhardt

Reputation: 5353

It's a typo. monthlyPrice is the variable name you declared but in your code you want to add on some variable called monthylyBill which doesn't exist.

Upvotes: 1

Related Questions