Java HashSet Points

101
28 мая 2019, 21:30

Всем привет. Такой вопрос связанный по Jav'е, я ее пока еще изучаю. В общем есть задача и условие такое: Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна я понимаю как ее решить математически используя эту формулу Lmin = Σ(с верху n, а с низу i=1) √((x2-x1)^2 + (y2-y1)^2), но у меня проблема заключается в том, что я использую HashSet после я ее конвертирую в HashMap а от туда у меня получается достать только значения y значения по x вообще не видит, я наверное не совсем правильный делаю подход к решении задачи буду рад помощи или совету как лучше достать данные из HashSet'а и потом уже по циклу найти минимум.

Вот мой код(если что класс Point - это готовый класс из пакета import java.awt.Point; так же я делал создавая собственный класс Point но проблема та же с HashMap y видит а x нет):

    Set<Point> points = new HashSet<>();
    points.add(new Point(9, 0));
    points.add(new Point(1, 1));
    points.add(new Point(5, 6));
    points.add(new Point(3, 3));
    points.add(new Point(2, 7));
    points.add(new Point(1, 8));
    points.add(new Point(6, 1));
    System.out.println(points);
    Map<Double, Double> map = new HashMap<>();
    for(Point ob : points) {
        map.put(ob.getX(), ob.getY());
    }
    System.out.println(map);
    double sum_m = 0;
    for(double f : map.values()) {
        sum_m+=f;
    }
    System.out.println(sum_m);
Answer 1

Map не самая подходящая структура для решения такой задачи, как минимум потому что принципиально не хранит повторяющиеся ключи. Вы не сможете положить в него несколько точек с одинаковой координатой X. Из точек (1,1) и (1,8) останется только одна, пр чем трудно предсказать какая. Да и зачем?

Для каждой точки переберите в цикле весь Set и вычислите суммарное расстояние. Запомните точку с минимальной суммой.

READ ALSO
Java writer.write &ldquo;\n&rdquo;

Java writer.write “\n”

Пытаюсь записать текст вtxt файл

141
HikariCP Method org.postgresql.jdbc4.Jdbc4Connection.isValid(int) is not yet implemented

HikariCP Method org.postgresql.jdbc4.Jdbc4Connection.isValid(int) is not yet implemented

Хочу использовать HikariCP в своем приложении на спринге, но при создании DataSource возникает исключение

191