一批点中,找出能找出多少对可以组成的矩形

/*

思考题:

有一个Point类,保存了x,y.

通过控制台录入了n,

然后录入了n个坐标。

保存在了集合中。

排序 去重

查找这些点能组成矩形的情况,有多少组。

排序,则需要什么规则

去重,需要如何处理Point类中的方法

即排序又去重,应当采用什么类

* */

java 复制代码
package point;



import java.util.*;

class Point implements Comparable<Point>{
    private int x,y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Point point = (Point) o;
        return x == point.x && y == point.y;
    }

    @Override
    public int hashCode() {
        return Objects.hash(x, y);
    }

    @Override
    public String toString() {
        return "Point{" +
                "x=" + x +
                ", y=" + y +
                '}';
    }

    @Override
    public int compareTo(Point o) {
        if(this.x==o.x)
            return this.y-o.y;
        else
            return this.x-o.x;
    }
}
public class MainTest {
    public static void main(String[] args) {
        Scanner in= new Scanner(System.in);
        TreeSet<Point> set= new TreeSet<>();
        int n=in.nextInt();
        for(int i=0;i<n;i++){
            int x,y;
            x=in.nextInt();
            y=in.nextInt();
            set.add(new Point(x,y));
        }
        int res=0;
        ArrayList<Point> list = new ArrayList<>(set);//set转为列表
        for(int i=0;i<list.size();i++){
            for(int j=0;j<list.size();j++){
                if(list.get(i).getX()<list.get(j).getX() && list.get(i).getY()<list.get(j).getY()
                &&list.contains(new Point(list.get(i).getX(),list.get(j).getY()))
                &&list.contains(new Point( list.get(j).getY(),list.get(i).getX()))
                ){
                    res++;
                }
            }
        }
        System.out.println(res);
    }
}
相关推荐
熊明才11 小时前
WSL2 网络突然瘫痪(Network is unreachable / 没有 eth0)最短修复指南(2026年9月20日亲测可用)
linux·windows·wsl2
xbzb15 小时前
Windows 启动故障修复知识整理:蓝屏 / 无限重启 / 盘符 X / 无 PE 盘
windows
我命由我1234516 小时前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
kakakahahahaha1 天前
Windows Steam 游戏存档在哪里?定位和恢复排查流程
windows·其他·电脑·笔记本电脑·内容运营·软件需求
Xy-unu1 天前
Windows 开启外接显示器 HDR 后外接显示器无信号、无法扩展模式故障记录
windows
troy1281 天前
Codex 安全盲区:代码漏洞生成实测
windows·python·ci/cd·pycharm·django·github·fastapi
其实防守也摸鱼1 天前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
五_谷_丰_登2 天前
windows批处理脚本(bat)问题解决方案大全——持续更新
windows·bat
YCOSA20252 天前
迎双节 雨晨 Windows 11 IoT 企业版 LTSC 26H1 轻装 28000.2956
windows·物联网
csdn_aspnet2 天前
Windows 如何隐藏 IIS Web 服务响应头中的 IIS Server 版本信息
windows·iis·url rewrite