Java:对列表排序<;点>;与邻居
我有一份要点清单,我想和他们的邻居一起把它们分类 例如:Java:对列表排序<;点>;与邻居,java,list,sorting,point,nearest-neighbor,Java,List,Sorting,Point,Nearest Neighbor,我有一份要点清单,我想和他们的邻居一起把它们分类 例如: 列表初始化 (0,0); (1,0); (5,0); (6,0); (0,1); (1,1); (5,1); (6,1); 列表排序 (0,0); (1,0); (0,1); (1,1); (5,0); (6,0); (5,1); (6,1); 我该怎么做 list.sort(new Comparator<Point>() { @Override public int compare(Poi
列表初始化
(0,0); (1,0); (5,0); (6,0);
(0,1); (1,1); (5,1); (6,1);
列表排序
(0,0); (1,0); (0,1); (1,1);
(5,0); (6,0); (5,1); (6,1);
我该怎么做
list.sort(new Comparator<Point>() {
@Override
public int compare(Point p1, Point p2) {
// Euclidian distance or something like that
return ;
}
});
list.sort(新的比较器(){
@凌驾
公共整数比较(点p1,点p2){
//欧几里得距离之类的
返回;
}
});
在类中实现并使用使用comparator对元素进行排序的集合,或在类中使用comparator对元素进行排序的集合,或在类中使用comparator对元素进行排序的集合,或使用comparator对元素进行排序的集合,或者使用类中的use实现并使用使用comparator对元素进行排序的集合,或者使用use实现comparator获得所需的排序。
例如:
实现Comparator以获得所需的顺序。 例如:
实现Comparator以获得所需的顺序。 例如:
实现Comparator以获得所需的顺序。 例如:
你需要一个算法来做到这一点,从一组点开始
你需要一个算法来做到这一点,从一组点开始
你需要一个算法来做到这一点,从一组点开始
你需要一个算法来做到这一点,从一组点开始
你能澄清一下分类规则吗?“和邻居一起分类”不是很清楚。如果两点之间的距离很抱歉,我还是不明白。如果我的输入是
(2,0),我期望得到什么输出;(1,0); (0,0); (1,1)
为什么?我不明白“if point@marcocierno”是什么意思。我想知道melkir实际上是指“分区”而不是“排序”“。我怀疑问题中预期产出的各点被组织成两行的方式。也许与比较器和排序有关的事情不是他/她想要的。你能澄清一下排序规则吗?“和邻居一起分类”不是很清楚。如果两点之间的距离很抱歉,我还是不明白。如果我的输入是(2,0),我期望得到什么输出;(1,0); (0,0); (1,1)
为什么?我不明白“if point@marcocierno”是什么意思。我想知道melkir实际上是指“分区”而不是“排序”“。我怀疑问题中预期产出的各点被组织成两行的方式。也许与比较器和排序有关的事情不是他/她想要的。你能澄清一下排序规则吗?“和邻居一起分类”不是很清楚。如果两点之间的距离很抱歉,我还是不明白。如果我的输入是(2,0),我期望得到什么输出;(1,0); (0,0); (1,1)
为什么?我不明白“if point@marcocierno”是什么意思。我想知道melkir实际上是指“分区”而不是“排序”“。我怀疑问题中预期产出的各点被组织成两行的方式。也许与比较器和排序有关的事情不是他/她想要的。你能澄清一下排序规则吗?“和邻居一起分类”不是很清楚。如果两点之间的距离很抱歉,我还是不明白。如果我的输入是(2,0),我期望得到什么输出;(1,0); (0,0); (1,1)
为什么?我不明白“if point@marcocierno”是什么意思。我想知道melkir实际上是指“分区”而不是“排序”“。我怀疑问题中预期产出的各点被组织成两行的方式。也许与比较器和排序有关的东西不是他/她想要的。谢谢你,我已经了解了区域增长方法的工作原理以及如何实现它。谢谢大卫·华莱士:)谢谢你,我已经了解了区域增长方法的工作原理和实施方法。谢谢你,D
Collections.sort(list, new Comparator<Point>()
{
public int compare(Point p1, Point p2)
{
//Euclidean distance from 0,0
Point origin = new Point();
return Double.compare(p1.distance(origin), p2.distance(origin));
}
});
Collections.sort(list, ((p1, p2) -> Double.compare(p1.distance(0, 0), p2.distance(0, 0));