Java K表示-将X和Y添加到列表中

Java K表示-将X和Y添加到列表中,java,Java,我正在研究K-means,我需要实现一个向数据添加点的方法。因此,一个点由两个元素组成,即X和Y。然后,我的方法如下: public void addPoint(double x, double y) { List<Data> list = new ArrayList<>(); } public void addPoint(双x,双y){ 列表=新的ArrayList(); } 所以我使用ArrayList来存储每个点,因为我认为它更有效,但我不知道如

我正在研究K-means,我需要实现一个向数据添加点的方法。因此,一个点由两个元素组成,即X和Y。然后,我的方法如下:

  public void addPoint(double x, double y) {
    List<Data> list = new ArrayList<>();
  }
public void addPoint(双x,双y){
列表=新的ArrayList();
}

所以我使用ArrayList来存储每个点,因为我认为它更有效,但我不知道如何将x和y作为ArrayList的单个元素一起存储。谢谢大家!

名为
Data
的类应该是一个值对象,它同时保存
x
y
的值

例如:

public class Data{
   private int x;
   private int y;
   public Data(final int x, final int y){
     this.x = x;
     this.y = y;
   }
   public int getX(){
    return this.x;
   }
   public int getY(){
    return this.y;
   }
   public void setX(final int x){
     this.x = x;
   }
   public void setY(final int y){
     this.y = y;
   }
}
要将元素添加到
ArrayList
,只需实例化一个新的
Data
对象,将其添加到
ArrayList

list.add(new Data(0, 2));//x-coordinate is 0 and y-coordinate is 2
如果构造函数中没有任何参数,可以实例化一个新的
数据
对象,手动设置x和y值,然后将其添加到ArrayList中

final Data d = new Data();
d.setX(0);
d.setY(2);
list.add(d);
数据的构造函数将如下所示:

public Data(){}

什么是
数据
?这应该保持x和y。是的,保持每个新添加点的坐标,这样x和y就会创建一个新的数据实例,将x和y放在其中,然后将实例存储在列表中。你的答案很好,只是为了完整性@Tom1999正在方法内部创建新列表而不返回类型,所以任何添加到新创建列表的操作都是毫无意义的。请使用返回类型
addPoint
method更新您的答案谢谢您的回答!这很好,但我也不能在构造函数中有参数。所以构造函数应该是“public Data()”@Tom1999没有问题。有什么方法可以避免手动设置x和y值?实际上,我的addPoint中可以有参数method@Tom1999您可以将其更改为一个方法调用,例如
d.setXAndY(0,2)
,但最简单的方法是使用构造函数。