【问题标题】:How to swap elements in a linked list without using collections.swap [duplicate]如何在不使用 collections.swap 的情况下交换链表中的元素 [重复]
【发布时间】:2020-10-25 03:40:19
【问题描述】:

我是java的初学者。我希望能够在使用我自己的方法或不使用 collections.swap 时使用索引值交换元素

import java.util.LinkedList;
import java.util.Scanner;

class Main {
    private static LinkedList<Integer> llist;
  public static void main(String[] args) {
    LinkedList<Integer> languages = new llist<>();
    Scanner s = new Scanner(System.in);

    // add elements in the linked list
    llist.add(5);
    llist.add(4);
    llist.add(3);
    llist.add(2);
    System.out.println("LinkedList: " + languages);
    exchange(3,2);
    System.out.println("LinkedList: " + languages);
  }
  
  public static void exchange(int i, int j) {
    llist.set(i, llist.set(j, llist.get(i)));
}
  
}

每当我构建这个时,都不会弹出错误,但是当我运行它时,它会给我 java.lang.NullPointerException。

【问题讨论】:

  • 您需要将异常的整个堆栈跟踪添加到您的问题中。

标签: java linked-list swap


【解决方案1】:

您的线路:

LinkedList<Integer> languages = new llist<>();

有错误 - 替换为

llist = new LinkedList<Integer>();

这样就变成了

import java.util.LinkedList;
import java.util.Scanner;

public class Main {
    private static LinkedList<Integer> llist;
    public static void main(String[] args) {
        llist = new LinkedList<Integer>();
        Scanner s = new Scanner(System.in);

        // add elements in the linked list
        llist.add(5);
        llist.add(4);
        llist.add(3);
        llist.add(2);
        System.out.println("LinkedList: " + llist);
        exchange(3,2);
        System.out.println("LinkedList: " + llist);
    }

    public static void exchange(int i, int j) {
        llist.set(i, llist.set(j, llist.get(i)));
    }
}

还有

System.out.println("LinkedList: " + languages);

应该是:

System.out.println("LinkedList: " + llist);

因为你并没有真正使用languages,而是llist

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多