ゲッターとセッターを用いちて片方向リストを作成しているのですが、headが次のデータを取得しません。
Gameクラスでゲッターとセッターを作成し、GameListクラスでゲッターセッターを使用して片方向リストを用いてGameをaddメソッド(GameList内の)を使用して追加したいと考えています。
私のGameListクラスでは、なぜ片方向リストが作成されないのでしょうか。
Headをcurrentとしてループで回してheadを移動させているつもりなのですが、、、
ご教示いただけないでしょうか。
よろしくお願い致します。
public class Game { private String name; private Calendar released; private Game next;//private -> public private int totalTrophies; public Game(String name, Calendar released, int totalTrophies) {// empty -> parameter (Game next+others) this.next = null; this.name = name; this.released = released; this.totalTrophies = totalTrophies; } public Game(String name, Calendar released, int totalTrophies, Game next) { try { this.next = next; this.name = name; this.released = released; this.totalTrophies = totalTrophies; } catch (Exception e) { System.out.println("Something went wrong."); } } public String toString() { // create date format SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd, yyyy"); // "Assassin's Creed IV: Black Flag", released on: Nov 29, 2013 String str = "\"" + name + "\"" + ", released on: " + dateFormat.format(released.getTime()); return str; } @Override public boolean equals(Object o) { if(o == null) { return false; } if(o.getClass() != this.getClass()) { return false; } if(!this.name.equals(((Game)o).name)){ return false; } if(this.released != ((Game)o).released) { return false; } if(this.totalTrophies != ((Game)o).totalTrophies) { return false; } return true; } public Calendar getReleased() {//Object -> Calendar return released; } public int getTotalTrophies() {//Object -> int return totalTrophies; } public String getName() {//Object -> String return name; } public void setNext(Game g2) { this.next = g2; } public Game getNext() { return next; } }
public class GameList { public Game head; // public GameList() {//I made // // } public GameList(Game head) { this.head = head; } public void addGame(Game game) throws IllegalArgumentException{ if(game == null) { throw new IllegalArgumentException("The object of game is null."); } Game newGame = new Game(game.getName(),game.getReleased(),game.getTotalTrophies()); Game current = head; // // Initialise Game only incase of 1st element if(head == null) { head = newGame; System.out.println("head: "+ head); } else { // starting at the head, crawl to the end of the list and then add element after last node while(current.getNext() != null) { current = current.getNext(); } // the last node's "next" referene set to our new node current.setNext(newGame); System.out.println("current: "+current); } } }