以下のコードについて質問なのですが、searchNodeメソッドの中でcurrent.dataとありますが、dataメソッド?はどこから来ましたか?
Nodeクラスの中のdataを使うことで特定のインデックス(int value)が指定された場合Nodeクラスのdataが出力されるということでしょうか。
参照(https://www.javatpoint.com/java-program-to-search-an-element-in-a-doubly-linked-list)
public class SearchList { //Represent a node of the doubly linked list class Node{ int data; Node previous; Node next; public Node(int data) { this.data = data; } } //Represent the head and tail of the doubly linked list Node head, tail = null; //searchNode() will search a given node in the list public void searchNode(int value) { int i = 1; boolean flag = false; //Node current will point to head Node current = head; //Checks whether the list is empty if(head == null) { System.out.println("List is empty"); return; } while(current != null) { //Compare value to be searched with each node in the list if(current.data == value) { flag = true; break; } current = current.next; i++; } if(flag) System.out.println("Node is present in the list at the position : " + i); else System.out.println("Node is not present in the list"); } public static void main(String[] args) { SearchList dList = new SearchList(); //Add nodes to the list dList.addNode(1); dList.addNode(5); dList.addNode(4); dList.addNode(2); dList.addNode(3); //Search for node 4 in the list dList.searchNode(4); //Search for node 9 in the list dList.searchNode(9); } }
追記
上記の参照を参考にすると上記のdataは以下のコードの中でtになるかと思いました。
Node.java
public class Node { public Node next; public Node prev; private String t; public Node(Node next, Node prev, String token) { this.next = next; this.prev = prev; this.t = token; } }
test.java
public class DSEList implements List { public Node head; public Node tail; // ?original private? // keeping track of size public int size; // step one public DSEList() { } public DSEList(Node head_) { head = head_; } //Takes a list then adds each element into a new list public DSEList(DSEList other) { // Copy constructor. head = other.head; } public String get(int index) { if(index < 0 || index >= size) { throw new ArrayIndexOutOfBoundsException(Integer.toString(index)); } Node current = head; for(int i = 0; i < index; i++) { current = current.next; } return current.t; } public String getString() { return t; } @Override public boolean equals(Object other) { if (this == other) return true; if (other == null) return false; if (!(other instanceof Node)) return false; return t.equals(((Node)other).getString()); } @Override public int hashCode() { if ( t == null ) return 0; return t.hashCode(); } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/05 01:48
2021/05/05 04:03
2021/05/05 06:06
2021/05/05 06:46