Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:对列表排序<;点>;与邻居_Java_List_Sorting_Point_Nearest Neighbor - Fatal编程技术网

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以获得所需的顺序。 例如:


你需要一个算法来做到这一点,从一组点开始

  • 如果集合中没有点,则停止
  • 创建一个新集合(当前对象),并选择原始集合中的任意点作为新集合中的第一个点
  • 从集合中删除选定点并将其添加到当前对象
  • 检查所选点的八个相邻点中的每一个,以查看原始集中是否有任何相邻点
  • 对于这样找到的任何点,从步骤3开始运行该算法(对此使用递归)
  • 如果所有邻居都不在原始集合中,请返回步骤1

  • 你需要一个算法来做到这一点,从一组点开始

  • 如果集合中没有点,则停止
  • 创建一个新集合(当前对象),并选择原始集合中的任意点作为新集合中的第一个点
  • 从集合中删除选定点并将其添加到当前对象
  • 检查所选点的八个相邻点中的每一个,以查看原始集中是否有任何相邻点
  • 对于这样找到的任何点,从步骤3开始运行该算法(对此使用递归)
  • 如果所有邻居都不在原始集合中,请返回步骤1

  • 你需要一个算法来做到这一点,从一组点开始

  • 如果集合中没有点,则停止
  • 创建一个新集合(当前对象),并选择原始集合中的任意点作为新集合中的第一个点
  • 从集合中删除选定点并将其添加到当前对象
  • 检查所选点的八个相邻点中的每一个,以查看原始集中是否有任何相邻点
  • 对于这样找到的任何点,从步骤3开始运行该算法(对此使用递归)
  • 如果所有邻居都不在原始集合中,请返回步骤1

  • 你需要一个算法来做到这一点,从一组点开始

  • 如果集合中没有点,则停止
  • 创建一个新集合(当前对象),并选择原始集合中的任意点作为新集合中的第一个点
  • 从集合中删除选定点并将其添加到当前对象
  • 检查所选点的八个相邻点中的每一个,以查看原始集中是否有任何相邻点
  • 对于这样找到的任何点,从步骤3开始运行该算法(对此使用递归)
  • 如果所有邻居都不在原始集合中,请返回步骤1


  • 你能澄清一下分类规则吗?“和邻居一起分类”不是很清楚。如果两点之间的距离很抱歉,我还是不明白。如果我的输入是
    (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));