Обработка и извлечение объектов

#java #object #linked-list #data-retrieval

#java #объект #связанный список #извлечение данных

Вопрос:

У меня есть односвязный список с тремя узлами.

  Rank1[Identity Number: 1, Location at point: 5.4,3.2, Score: 8.2] 
 Rank2[Identity Number: 3, Location at point: 2.2,1.2, Score: 6.0]
 Rank3[Identity Number: 2, Location at point: 1.4,9.2, Score: 7.5]
 

Идентификационный номер — целое число , местоположение в точке — объект класса Point , Оценка — double.
Я вставляю узлы в список с объектами записи, который включает точечный объект (местоположение в значении точки).

Чтобы иметь представление о переменных и классах:

Класс точек:

 class Point {
    public double x, y;
    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }
    //Απόσταση με δεδομένο το σημείο p
    public double dist(Point p) {
        return Math.sqrt((this.x-p.x)*(this.x-p.x) (this.y-p.y)*(this.y-p.y));
    }
 

Класс записи:

 class Record {
public int id; //Αναγνωριστικό ενός καταστήματος
    public Point location; //Συντεταγμένες του σημείου ενδιαφέροντος
    public double score; //Βαθμολογία του σημείου

    public Record(int id, Point location, double score) {
        this.id = id;
        this.location = location;
        this.score = score;
    }

    //Επιστρέφει τα στοιχεία που προστέθηκαν για το μαγαζί
    public Record copy() {
        return new Record(
                this.id,
                this.location.copy(),
                this.score
        );
    }
 

Класс узла:

 public Record poi;
    public Node next;

    public Node(Record poi) {
        this.poi = poi;
    }

    public Record getPoi() {
        return poi;
    }

    public void setPoi(Record poi) {
        this.poi = poi;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public String toString() {
        return poi.toString();
    }
 

Следующий класс включает в себя метод main и nearest. В основном методе я вставляю значения и создаю узлы, которые были определены выше. В ближайшем методе я пытаюсь вычислить расстояние между двумя точками местоположений и аргументом p, и если расстояние меньше maxDist, добавьте узел в новый список с именем nearList .

 class RankList {
    private Node first;
    private int nodeCount;
    private Record record;

  public static void main(String[] args) {
    //Inserting the nodes to the singly linkedlist
    RankList list1 = new RankList();
    list1.nearest(p,maxDist); //maxDist=8.7 
  }

    public RankList nearest (Point p,double maxDist){
    RankList nearList = new RankList();
    Node current = first;
    while (current != null) {
        System.out.print(current);
        if(record.location.dist(p)<maxDist){ //Finding the distance between the added points with p argument
            nearList.insert(record); //Insert the distances shorter than maxDist in a new list.
        }
        current = current.getNext();
    }
    System.out.println("null");
    return nearList;
}
 

}

Я пытаюсь извлечь объектную точку из каждого узла, чтобы провести сравнение, а затем добавить их в новый список. Я пытался добиться этого с помощью объекта записи, но, похоже, это не работает.

Основная проблема заключается в том, что я не знаю, как по-другому обрабатывать значения узла и как извлекать те, которые мне нужны.

Любые предложения были бы действительно полезны! Не стесняйтесь спрашивать все о коде.

Комментарии:

1. Какой беспорядок, вы представляете весь этот код, но не представляете свой класс узла, о котором идет речь, код даже недействителен, и я понятия не имею, чего вы пытаетесь достичь.

2. Ваш вопрос «как получить экземпляр Point из экземпляра Node»?

3. @Ecto Вы правы, я добавил это. Мне нужно извлечь точечный объект каждого узла, чтобы провести сравнение и добавить их в новый список.

4. @Ecto Да, именно так!

5. node.getPoi().location ?