링크 로 이 루어 진 용기
먼저,하나의 노드 를 링크 의 한 노드 로 정의 합 니 다.우 리 는 모든 노드 에 두 가지 내용 이 있다 는 것 을 알 고 있 습 니 다.
1.이 노드 에 저 장 된 내용
2.다음 결점 을 가리 키 는 지침
package com.dp.iterator;
public class Node {
private Object data;
private Node next;
public Node(Object data, Node next) {
super();
this.data = data;
this.next = next;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
링크 목록 링크 클래스 를 정의 합 니 다.이 종 류 는 Collection 인 터 페 이 스 를 실현 했다.
package com.dp.iterator;
//
public class LinkedList implements Collection{
Node head = null;
Node tail = null;
int size = 0;
public void add(Object o){
Node n = new Node(o,null);
if(head == null){
head = n;
tail = n;
}
tail.setNext(n);
tail = n;
size ++;
}
public int size(){
return size;
}
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new LinkedListIterator();
}
public class LinkedListIterator implements Iterator{
private Node currentNode = null;
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if(currentNode == tail){
return false;
} else {
return true;
}
}
@Override
public Object next() {
// TODO Auto-generated method stub
if(currentNode == null){
currentNode = head;
} else {
//System.out.println("help");
currentNode = currentNode.getNext();
}
return currentNode.getData();
}
}
}
Collection 인터페이스:
package com.dp.iterator;
public interface Collection {
void add(Object o);
int size();
Iterator iterator();
}
Collection 인터페이스 에 서 는 Iterator 인 터 페 이 스 를 인용 하 였 으 며,이 Iterator 인 터 페 이 스 는 LinkedList 류 에서 내부 류 를 통 해 이 루어 집 니 다.
package com.dp.iterator;
public interface Iterator {
boolean hasNext();
Object next();
}
보조 클래스 Cat.java
package com.dp.iterator;
public class Cat {
public Cat(int id) {
this.id = id;
}
private int id;
public String toString(){
return "Cat " + id;
}
}
테스트 클래스 Test.java
package com.dp.iterator;
import com.dp.iterator.LinkedList;
import com.dp.iterator.ArrayList;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//ArrayList arrayList = new ArrayList();
//LinkedList arrayList = new LinkedList();
Collection c = new LinkedList();
for(int i = 0; i < 15; i ++){
c.add(new Cat(i));
}
System.out.println("size" + c.size());
Iterator it = c.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(" " + o);
}
}
}
이 글 은 주로 JDK 용기 및 교체 자 를 모 의 하 는 방법 을 제공 했다.이 를 통 해 JDK 의 용기 와 용기 가 옮 겨 다 니 는 것 에 대해 더 깊이 이해 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
localStorage에 객체를 추가하는 방법은 무엇입니까?이 노트에서는 localStorage에 객체를 삽입하는 방법을 보여드리겠습니다. 경우에 따라 로컬 스토리지 또는 세션 스토리지에 데이터를 개체로 저장해야 할 수 있습니다. 어떻게 이것을 달성할 수 있습니까? 객체가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.