我正在尝试编写一个名为 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/