簡體   English   中英

無法弄清楚為什么System.out.println無法正常工作

[英]cannot figure out why System.out.println isn't working

我正在使用此代碼嘗試打印出兩行:列表中的原始元素和列表切換后的元素。

但是,當我運行該程序時,僅打印列表中的原始元素。 我做錯了什么嗎?

import java.util.ArrayList;
import java.util.List;


public class ListADT {

  public static void main (String[] args){
    //create a list
    List <String> myList = new ArrayList<>(); {
      myList.add("A");
      myList.add("B");
      myList.add("C");
      myList.add("D");
      myList.add("E");

      //show the elements of that list
      System.out.println(myList);
    }
  }

  // precondition: x and y are >= 0 and < mylist.size()
  //precondition: mylist is not null
  void swap(int x, int y, List <String> myList) {
    String s = myList.get(x);
    myList.set(x, myList.get(y));
    myList.set(y, s);
    swap(1, 3, myList);

    //now console should show new list with elements switched
    System.out.println(myList);
  }

}

我認為這是因為您從未在任何地方修改過列表。 我相信swap會修改您的列表,但您從未在主函數中調用過function swap

問題是您從未使用過swap()方法。 通過在swap()本身內部調用swap() ,您正在執行稱為recursion 這里錯了。 因此,我已將swap()調用移至main()方法。 我已經修改了您的代碼。 看看這個。

public class Main {

    public static void main (String[] args){
        //create a list
        List<String> myList = new ArrayList<String>(); {

            myList.add("A");
            myList.add("B");
            myList.add("C");
            myList.add("D");
            myList.add("E");
            //show the elements of that list
            System.out.println(myList);
            swap(1, 3, myList);

        }}
    //precondition: x and y are >= 0 and < mylist.size()
    //precondition: mylist is not null

    static void  swap(int x, int y, List <String> myList) {

        String s = myList.get(x);
        myList.set(x, myList.get(y));
        myList.set(y, s);

        //now console should show new list with elements switched
        System.out.println(myList);
    }
}

您的程序永遠不會從main調用swap

您僅將元素添加到列表中並打印。 我相信您應該在打印之前打電話給swap

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM