处理和检索对象

kyks70gy  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(310)

我有一个有三个节点的单链接列表。

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对象(point value处的位置)的记录对象列表中。
要了解变量和类:
点类:

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方法。在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;
}

}
我尝试从每个节点检索对象点,以便进行比较,然后将它们添加到新列表中。我试着用record object实现这一点,但似乎不起作用。
主要问题是我不知道如何以不同的方式处理节点的值,以及如何检索所需的值。
任何建议都会很有帮助!随时询问有关代码的所有信息。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题