java - 如何在链表java中的第一个元素前面添加一个点?

标签 java list linked-list structure

我正在尝试编写一个名为 addStart() 的函数,以在列表结构中第一个节点的前面添加新元素。请帮我弄清楚。

我有 2 个类,名为 Waypoint 和 TourElement 类。 Waypoint 提供了处理点的方法。一个游览元素包含很多点。

//Waypoint.java

 public class Waypoint {
      int x  ;
      int y  ;
    public int getX()
    {
        return this.x;
    }
    public int getY()
    {
        return this.y;
    }
    public void setXY(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

//游览Element.java

public class TourElement {
 private Waypoint points;
 private TourElement next;

  public void setWaypoint( Waypoint points)
 {
   this.points = points; 
 }
  public void setTourElement(TourElement next)
  {
      this.next = next;
  }
 Waypoint getWaypoint()
 {
     return this.points;
 }

 TourElement getNext()
 {
     return this.next;
 }

//我需要有关 addStart 函数的帮助 //,这会在第一个元素前面添加路径点。如果参数为 null,则列表将保持不变。

TourElement addStart(Waypoint wp) {
        if(this.next == null)
        {
            TourElement newTourElement = new TourElement();
            newTourElement.setWaypoint(wp);
            this.next = newTourElement; 
        }
        return this;
    }

//addStart的测试用例:

public void test0AddStart() {
        TourElement elem = new TourElement();
        elem.setWaypoint(createWaypoint(2, 2));  

        elem = elem.addStart(createWaypoint(1, 1));
        assertArrayEquals(new int[] {1, 1}, elem.getWaypoint().toArray());
        assertArrayEquals(new int[] {2, 2}, elem.getNext().getWaypoint().toArray());
        assertNull(elem.getNext().getNext());
    }

我的输入是一个节点列表,例如:{1,2} -> {2,3} -> {3,4} 和路点 {5,6}。我预计我的输出将是:{5,6 } -> {1,2} -> {2,3} -> {3,4}

最佳答案

您可以使用 addFirst(Object element) 在第一个索引处插入元素,例如:

    import java.io.*; 
    import java.util.LinkedList; 

    public class LinkedListDemo { 
       public static void main(String args[]) { 

        // creating an empty LinkedList 
        LinkedList<String> list = new LinkedList<String>(); 

        // use add() method to add elements in the list 
        list.add("Coder"); 
        list.add("ACJHP"); 
        list.add("1190"); 

        // Output the present list 
        System.out.println("The list is:" + list); 

        // Adding new elements at the beginning 
        list.addFirst("First"); 
        list.addFirst("At"); 

        // Displaying the new list 
        System.out.println("The new List is:" + list); 
    } 
} 

因此,如果您阅读 documentation仔细你会发现很多方法可以让你的工作变得轻松

关于java - 如何在链表java中的第一个元素前面添加一个点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56290019/

相关文章:

c - 如何有效地添加 2 个不同大小的链表

java - 如何使用 javafx/scene builder 将对象的链接列表添加到 TableView?

java - 无法在 Activity 类中编译 "implements BroadcastReceiver"

java - 安装 Google App Engine Eclipse 插件时出错

python - 对元组列表中的值求和并按工作日排序

c# - 在 C# 中使用 List<> 作为 BindingSource

algorithm - 二叉树post遍历成链表

java - Java 中使用内存映射文件的 IO 错误

没有未初始化的变量时出现 Java NullPointerException

python - 如何在不阻塞事件循环的情况下迭代一个大列表