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;

        }*/

    }
}
3
  • 1
    but i cant sum the values from the List Why? What's wrong? What's preventing you from doing it? Commented Jul 21, 2016 at 0:37
  • I dont know how to access the values I tried using a for loop but im not to sure where to store the values @SotiriosDelimanolis Commented Jul 21, 2016 at 0:38
  • A void method shouldn't start with get. Commented Jul 21, 2016 at 1:26

2 Answers 2

2

Try this:

for (Double item : lawn.list) {
    tot += item;
}
Sign up to request clarification or add additional context in comments.

1 Comment

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); }
2

You can do it by using a java 8 lambda:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.