0

I am trying to create a console application where i take input from the user asking for total area then i ask the user the amount of structures that our in that area and then I store the values in the list what I am trying t do is substract the total area by structure are but i cant sum the values from the List

package lawn;

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

/**
 *
 * @author norbe
 */
public class Lawn {

    private double lenght, width;
    private double totalArea;
    private double structureArea;
    private double tot;
    List<Double> list = new ArrayList<Double>();
    public Lawn (){
    return;}

    public Lawn(double Lenght, double Width) {
        this.lenght = Lenght;
        this.width = Width;

    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double Width) {
        this.width = Width;
    }

    public double getLenght() {
        return lenght;
    }

    public void setHeight(double Lenght) {
        this.lenght = Lenght;
    }

    public void getTotalArea() {
        Scanner sc = new Scanner(System.in);
        double lenght;
        double width;
        System.out.println("please enter Total lenght :\t ");
        lenght = sc.nextDouble();
        if (lenght >= 0.0) {
            System.out.println("Please enter width :\t ");
            width = sc.nextDouble();
            if (width > 0.0) {
                totalArea = lenght * width;
                System.out.println("Your total area is :\t " + totalArea);
            } else {
                System.out.println("Invalid entry");
            }
        } else {
            System.out.println("Invalid entry");
        }

    }

    public void getStructureArea() {
        Scanner sc = new Scanner(System.in);
        /*double lenght;
        double width;*/
        System.out.println("please enter Structure lenght :\t ");
        lenght = sc.nextDouble();
        if (lenght >= 0.0) {
            System.out.println("Please enter  Structure width :\t ");
            width = sc.nextDouble();
            if (width > 0.0) {
                structureArea = lenght * width;
                list.add(structureArea);
                System.out.println("Your Structure area is :\t " + structureArea);
            } else {
                System.out.println("Invalid entry");
            }
        } else {
            System.out.println("Invalid entry");
        }

        System.out.println(list);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        double tot = 0;
        Lawn lawn = new Lawn();
        lawn.getTotalArea();
        System.out.println("Please enter number of structures : ");
        Scanner sc = new Scanner(System.in);
        int structures = sc.nextInt();
        for (int count = 1; count <= structures; count++) {
            lawn.getStructureArea();
        }

        double sum = 0;
       /* for (Double item : list) {
            tot += item.structureArea;

        }*/

    }
}

2 Answers2

2

Try this:

for (Double item : lawn.list) {
    tot += item;
}
shmosel
  • 49,289
  • 6
  • 73
  • 138
  • So it worked what I did is double sum = 0; for (Double item : lawn.list) { tot += item; sum = tot; } System.out.println("sum " + sum); double areaMinusStructure = totalArea - sum; System.out.print(areaMinusStructure); } – Norbert Rozmarynowski Jul 21 '16 at 02:45
2

You can do it by using a java 8 lambda:

Double total = lawn.list.stream().mapToDouble(i -> i).sum();