从ArrayList

时间:2016-10-30 13:20:44

标签: java arraylist

所以我正在编写一个基于控制台的Shape Creator,用户输入创建形状。如果用户想要创建5 Square,程序将创建一个ArrayList并从Square类获取具有shapeId,area等的数据。

import java.util.ArrayList;
import javax.swing.JOptionPane;

public class ShapeMaker {


    public ShapeMaker(){


        create();

    }

    public void create(){
        //creates list of arrays within shapes.
        ArrayList<Circle>circles=new ArrayList<Circle>();
        ArrayList<Square>squares=new ArrayList<Square>();
        ArrayList<Rectangle>rectangles=new ArrayList<Rectangle>();

        //this loop is dangerously infinity but I had to open the program for choices.
        while(true){
            String[] choices={"Create Random Shapes","Circles","Squares","Rectangles",
                    "Print All Shapes","Print Rectangles","Print Squares",
                    "Print Circles","Exit"};
            String optionMenu = (String)JOptionPane.showInputDialog(
                    null,
                    "Choose what you desire",
                    "Customized Dialog",
                    JOptionPane.PLAIN_MESSAGE,
                    null,
                    choices,
                    choices[0]);


            if (optionMenu==choices[0]){
                //              String input4=(String)JOptionPane.showInputDialog(null,"How Many Shape ?","Question",
                //                      JOptionPane.QUESTION_MESSAGE);
                //              int inputLength4=Integer.parseInt(input4);
                //              for (int i=0;i<inputLength4;i++){
                //
                //                  circles2[i]=new Circle();
                //                  circles.add(circles2[i]);
                //                  squares2[i]=new Square();
                //                  squares.add(squares2[i]);
                //                  rectangles2[i]=new Rectangle();
                //                  rectangles.add(rectangles2[i]);
                //
                //              }
                //              JOptionPane.showMessageDialog(null,inputLength4+" shapes have been created successfully.");
            }
            else if (optionMenu==choices[1]) { 
                String input=(String)JOptionPane.showInputDialog(null,"How Many Circle ?","Question",
                        JOptionPane.QUESTION_MESSAGE);
                int inputLength=Integer.parseInt(input);
                Circle[]circles2=new Circle[inputLength];
                if (circles.isEmpty()==false){
                    int delete=JOptionPane.showConfirmDialog(null, "There are circles in the list. Do you want to delete them?",
                            "Existing Shapes",JOptionPane.YES_NO_OPTION);
                    if (delete==JOptionPane.YES_OPTION){
                        circles.remove(circles2);
                    }
                    else{
                        for (int i=0;i<inputLength;i++){
                            circles2[i]=new Circle();
                            circles.add(circles2[i]);
                        }
                    }

                }
                else{


                    for (int i=0;i<circles2.length;i++){
                        circles2[i]=new Circle();
                        circles.add(circles2[i]);
                    }
                    JOptionPane.showMessageDialog(null,inputLength+" circle have been created successfully.");
                }

            }
            else if (optionMenu==choices[2]) { 
                String input3=(String)JOptionPane.showInputDialog(null,"How Many Squares ?","Question",
                        JOptionPane.QUESTION_MESSAGE);
                int inputLength3=Integer.parseInt(input3);
                Square[]squares2=new Square[inputLength3];
                if (squares.isEmpty()==false){
                    int delete=JOptionPane.showConfirmDialog(null, "There are squares in the list. Do you want to delete them?",
                            "Existing Shapes",JOptionPane.YES_NO_OPTION);
                    if (delete==JOptionPane.YES_OPTION){
                        squares.remove(squares2);
                    }
                    else{
                        for (int i=0;i<inputLength3;i++){
                            squares2[i]=new Square();
                            squares.add(squares2[i]);
                        }
                    }

                }
                else{

                    for (int i=0;i<inputLength3;i++){
                        squares2[i]=new Square();
                        squares.add(squares2[i]);
                    }
                }
                JOptionPane.showMessageDialog(null,inputLength3+" square have been created successfully.");


            }
            else if (optionMenu==choices[3]) { 
                String input2=(String)JOptionPane.showInputDialog(null,"How Many Rectangles ?","Question",
                        JOptionPane.QUESTION_MESSAGE);
                int inputLength2=Integer.parseInt(input2);
                Rectangle[]rectangles2=new Rectangle[inputLength2];
                if (rectangles.isEmpty()==false){
                    int delete=JOptionPane.showConfirmDialog(null, "There are rectangles in the list. Do you want to delete them?",
                            "Existing Shapes",JOptionPane.YES_NO_OPTION);
                    if (delete==JOptionPane.YES_OPTION){
                        rectangles.remove(rectangles2);
                    }
                    else{
                        for (int i=0;i<inputLength2;i++){
                            rectangles2[i]=new Rectangle();
                            rectangles.add(rectangles2[i]);
                        }
                    }

                }
                else{
                    for (int i=0;i<inputLength2;i++){
                        rectangles2[i]=new Rectangle();
                        rectangles.add(rectangles2[i]);

                    }
                    JOptionPane.showMessageDialog(null,inputLength2+" rectangle have been created successfully.");
                }
            }
            else if (optionMenu==choices[4]) { 
                System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape",
                        "Area","Full Shape", " Distance", "Properties");
                System.out.println();
                for (int i=0;i<rectangles.size();i++){
                    System.out.println(rectangles.get(i));
                }
                for (int i=0;i<squares.size();i++){
                    System.out.println(squares.get(i));
                }
                for (int i=0;i<circles.size();i++){
                    System.out.println(circles.get(i));                 
                }


            }
            else if (optionMenu==choices[5]) {
                System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape",
                        "Area","Full Shape", " Distance", "Properties");
                System.out.println();
                for (int i=0;i<rectangles.size();i++){
                    System.out.println(rectangles.get(i));

                }
                System.out.print("There are "+rectangles.size()+" rectangle with total area of ");
            }
            else if (optionMenu==choices[6]) { 
                System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape",
                        "Area","Full Shape", " Distance", "Properties");
                System.out.println();
                for (int i=0;i<squares.size();i++){
                    System.out.println(squares.get(i));

                }
                System.out.print("There are "+squares.size()+" square with total area of ");

            }
            else if (optionMenu==choices[7]) { 
                System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape",
                        "Area","Full Shape", " Distance", "Properties");
                System.out.println();
                for (int i=0;i<circles.size();i++){
                    System.out.println(circles.get(i));

                }
                System.out.print("There are "+circles.size()+" circle with total area of ");
            }
            else if(optionMenu==choices[8]) {
                System.exit(1);

            }
        }

    }

    public static void main(String [] args){
        new ShapeMaker();
        //      System.out.println(shape);


    }
}

问题是,我需要从区域行获取值并计算这些形状的总面积。 Output

那么,我怎样才能获得创建的ArrayList的所有区域?

1 个答案:

答案 0 :(得分:1)

Greatings,Egrimo。

正如您所说,您有一个Square类,它具有以下所有属性:IDShapeAreaFull ShapeDistance和{ {1}}。

当你这样做时:

Properties

您想要访问System.out.println(squares.get(i)); 属性,您必须这样做:

  1. 在Square类中创建方法Area。此方法必须是公开的,并且将返回该方块的区域。
  2. 从System.out.println调用getArea()方法以打印方形区域:
  3. getArea()将打印您的方形区域。

    修改

    如果您不知道如何创建getArea()方法,请查看此示例:

    System.out.println(squares.get(i).getArea());

    祝你有个美好的一天!