在List<>中初始化Point2D

时间:2016-10-05 21:04:20

标签: java list sorting 2d points

如果我有一个简单的列表< Point2D>声明。

示例:

List<Point2D> listOfPoints;

/* What I tried */
Point2D point1;
listOfPoints.add(point1);

但是,如何初始化point1以便我可以设置一个让我们说(3,2)的坐标?

2 个答案:

答案 0 :(得分:1)

您必须创建Point2D的实例。目前,您正在向null添加listOfPoints。另外,listOfPoints未初始化,因此您的代码会生成NullPointerException。试试这个:

List<Point2D> listOfPoints = new ArrayList<>(); // or another List implementation class

Point2D point1 = new Point2D.Float(3, 2); // or perhaps Point2D.Double
listOfPoints.add(point1);

此外,如果您有Point2D.FloatPoint2D.Double个对象,则可以通过直接指定xy字段或通过调用来明确设置坐标setLocation()并传递坐标。

答案 1 :(得分:1)

你可以尝试:

Point2D point1 = new Point2D.Double(3, 2);

Point2D point1 = new Point2D.Float(3, 2);

您还需要初始化您的列表,例如

List<Point2D> listOfPoints = new ArrayList<>();
listOfPoints.add(point1);

简单地执行new Point2D(3, 2)将无效,因为Point2D是抽象的。