AssassinManager
(아래 참조)의 생성자를 다시 작성하려고합니다. 이 메소드는 ArrayList를 매개 변수로 취하는 생성자입니다. ArrayList는 이름이 나타나는 순서대로 객체에 추가해야합니다. 새로운 각 노드는 링크 된 목록의 끝에 추가되어야합니다. 나는 이것을 달성하는 방법을 모르겠다.ArrayList 및 노드
첫 번째 버전 :
private static class AssassinNode {
private String player;
private String killer;
private AssassinNode next;
private AssassinNode(String name) {
this.player = name;
this.killer = null;
this.next = null;
}
}
private AssassinNode killring; // the head of the kill ring linked list - first link
private AssassinNode graveyard; // the head of the graveyard linked list - second link
public AssassinManager(ArrayList<String> players) {
if (players == null || players.isEmpty()) { throw new IllegalArgumentException(); }
killring = new AssassinNode(players.get(0)); // create first node - for the killring
AssassinNode node = killring;
for (int i = 1; i < players.size(); i++) { // Add a new node at the end of each killing
node.next = new AssassinNode(players.get(i));
node = node.next;
}
}
새 버전 :
private KillList killring;
private AssassinNodeData graveyard;
public AssassinManager(ArrayList<String> players) {
if (players == null || players.isEmpty()) { throw new IllegalArgumentException(); }
killring = new KillList(players.get(0));
KillList node = killring;
node.addAll(players);
}
KillList extends LinkedList<AssassinNodeData>
next
를 사용하지 않고 같은 일을 달성하기 위해 노력하고있어. 클래스 간의
관계 : KillList (서브 클래스)와 AssassinNodeData (슈퍼 클래스)
어떤 제안이나 솔루션이 크게 감사합니다!
당신은 삽입 방법, 그러나 일반적으로 링크 된 목록에 추가 할 수있는 유일한 방법을 작성 할 수 있습니다 안녕하세요이 –
node.addAll (플레이어)를 반복하는 다음의 속성을 사용하는 것입니다 @ cricket_007 :) 그렇다면 첫 번째 버전에서 어떻게 사용했는지 알 수 있습니까? 나는 당신이 암시하고있는 것에 익숙하지 않다. 삽입 방법을 써라. – Hemakumar
같은 시도 목록 – Ani