Как я могу добавить точку перед первым элементом в связанном списке Java? - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь написать функцию с именем addStart (), чтобы добавить новый элемент в начало первого узла в списке структур. пожалуйста, помогите мне разобраться.

У меня есть 2 класса с именами Waypoint и TourElement Class. Путевая точка предоставляет метод для работы с точками. Элемент тура содержит много очков.

// 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;
    }

// Tour 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}

1 Ответ

0 голосов
/ 24 мая 2019

Вы можете использовать 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); 
    } 
} 

Так что, если вы внимательно прочитаете документацию , вы увидите множество методов, облегчающих вашу работу

...