如何在Java中使用ArrayList?

如何在Java中使用ArrayList?,java,arraylist,Java,Arraylist,我是一个新的尝试学习编程和java的人,我目前正在一个程序中工作,但我需要帮助启动它,如果有人能帮助我,我将非常感激 我必须实现一个包含Point2D.Double对象数组列表的类 Double类定义了一个以双精度指定的点,表示x,y坐标空间中的位置。例如,Point2D.Double2.5,3.1在坐标2.5,3.1处构造并初始化一个点 我将使用这些声明作为我实验室工作的起点 import java.awt.geom.*; // for Point2D.Double import ja

我是一个新的尝试学习编程和java的人,我目前正在一个程序中工作,但我需要帮助启动它,如果有人能帮助我,我将非常感激

我必须实现一个包含Point2D.Double对象数组列表的类

Double类定义了一个以双精度指定的点,表示x,y坐标空间中的位置。例如,Point2D.Double2.5,3.1在坐标2.5,3.1处构造并初始化一个点

我将使用这些声明作为我实验室工作的起点

import java.awt.geom.*;     // for Point2D.Double
import java.util.ArrayList; // for ArrayList

public class IrregularPolygon {
   private ArrayList <Point2D.Double> myPolygon;

   // constructors
   public IrregularPolygon() { }

   // public methods
   public void add(Point2D.Double aPoint) { }

   public double perimeter() { }

   public double area() { }
}

我想了解一些关于如何编写计算多边形周长和面积的方法的技巧。计算周长,计算相邻点之间的距离,并合计距离。带角多边形的面积是绝对值:

我建议使用Math.hypopoint1.getX-point2.getX,point1.getY-point2.getY表示到相邻点的距离。对于周长,正如您所述,求和所有距离,不要忘记添加从最后一点到第一点的距离。有关此区域,请参见。

我希望您能发现此示例对您有所帮助:

import java.awt.geom.*;
import java.util.ArrayList;

public class IrregularPolygon {
    private ArrayList<Point2D.Double> myPolygon;

    // constructors
    public IrregularPolygon() {
        this.myPolygon = new ArrayList<Point2D.Double>();
    }

    // public methods
    public void add(Point2D.Double aPoint) {
        this.myPolygon.add(aPoint);
    }

    public double perimeter() {
        // compute perimeter
        return 0;
    }

    public double area() {
        // compute area
        return 0;
    }

    @Override
    public String toString() {
        String result = "IrregularPolygon [";
        for (Point2D.Double point : myPolygon) {
            result += "|X: " + point.x + ". Y: " + point.y + "|";
        }
        result += "]";
        return result;
    }

    public static void main(String[] args) {
        IrregularPolygon irregularPolygon = new IrregularPolygon();
        Point2D.Double point1 = new Point2D.Double(0, 2);
        Point2D.Double point2 = new Point2D.Double(2, 4);
        Point2D.Double point3 = new Point2D.Double(3, 5);

        irregularPolygon.add(point1);
        irregularPolygon.add(point2);
        irregularPolygon.add(point3);

        System.out.println(irregularPolygon.toString());
    }

}
您可以在toString方法以及add方法中找到如何在Java中使用ArrayList,因此方法Permiture和area的实现只取决于您拥有的规范。您只需要外推该方法来完成该类

希望能有帮助


克莱门西奥·莫拉莱斯·卢卡斯。

到目前为止,这就是我所拥有的:

import java.awt.geom.*;   
import java.util.ArrayList; 

public class IrregularPolygon {
private ArrayList <Point2D.Double> myPolygon;


public IrregularPolygon() 
{ 
myPolygon = new ArrayList < Point2D.Double > ();
}

public void add(Point2D.Double aPoint)
{
myPolygon.add(aPoint);
}

public void print()
{
for (Object element : myPolygon)
{
      System.out.println(element);
  }
}

public double distance(Point2D pt)
{
   double distance = 0;
   x.distance(y);
   return distance;
}

public double perimeter()
{
double distance = 0;


for(int x = 0; x < aPoint; x++){  // cords given in groups might have to / by 2
    get.point();
    if(myPolygon[] != null){
         get.nextPoint();
          }
      else{
          distance += thePoint.distance(nextPoint)
          }
}

return distance;
}

public double area()
{ 
double area = 0;

return area;
}
}

//that's irregular polygon. this is polygon application

import javax.swing.*;
import java.awt.geom.Point2D;

public class PolygonApplication
{
public static void main() {
String userInput;
int pointNumber = 1;
Point2D.Double nextPoint;
IrregularPolygon myPolygon = new IrregularPolygon();

do  {
     userInput = JOptionPane.showInputDialog("Enter x coordinate for point  " + pointNumber);
     if (userInput != null) {
     double x = Double.parseDouble(userInput);
     userInput = JOptionPane.showInputDialog("Enter y coordinate for point  " + 
             pointNumber);
if (userInput != null) {
                  double y = Double.parseDouble(userInput);
                  nextPoint = new Point2D.Double(x,y);
                  myPolygon.add(nextPoint);
                  pointNumber += 1;
}
}

} 
while (userInput != null);

myPolygon.print();
}
}

嗯,你知道周长和面积是多少吗?从周长开始-这是最简单的。你能遍历点列表吗?你试过什么?我用我到目前为止所做的评论