parent
8458a90031
commit
c29641bcb4
@ -0,0 +1,45 @@
|
||||
package iterator;
|
||||
|
||||
public class ArrayList_ implements Collection_{
|
||||
Object[] objects = new Object[10];
|
||||
private int size = 0;
|
||||
|
||||
@Override
|
||||
public void add(Object o) {
|
||||
if(size == objects.length){
|
||||
Object[] newObjects = new Object[objects.length*2];
|
||||
System.arraycopy(objects,0, newObjects, 0, objects.length);
|
||||
objects = newObjects;
|
||||
}
|
||||
objects[size] = o;
|
||||
size++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator_ iterator() {
|
||||
return new ArrayListIterator();
|
||||
}
|
||||
|
||||
private class ArrayListIterator implements Iterator_{
|
||||
private int currentSize = 0;
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
if(currentSize >= size){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object next() {
|
||||
Object o = objects[currentSize];
|
||||
currentSize ++;
|
||||
return o;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package iterator;
|
||||
|
||||
public interface Collection_ {
|
||||
void add(Object o);
|
||||
int size();
|
||||
Iterator_ iterator();
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package iterator;
|
||||
|
||||
public interface Iterator_ {
|
||||
boolean hasNext();
|
||||
Object next();
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package iterator;
|
||||
|
||||
public class LinkedList_ implements Collection_{
|
||||
Node head;
|
||||
Node tail;
|
||||
int size = 0;
|
||||
|
||||
@Override
|
||||
public void add(Object o) {
|
||||
Node n = new Node(o);
|
||||
n.next = null;
|
||||
if(head == null){
|
||||
head = n;
|
||||
}else{
|
||||
tail.next = n;
|
||||
}
|
||||
tail = n;
|
||||
size ++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator_ iterator() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private class Node{
|
||||
Object o;
|
||||
Node next;
|
||||
|
||||
public Node(Object o) {
|
||||
this.o = o;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package iterator;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
Collection_ a = new ArrayList_();
|
||||
for (int i = 0; i < 15; i++) {
|
||||
a.add("testA " + i);
|
||||
}
|
||||
System.out.println(a.size());
|
||||
|
||||
Collection_ l = new LinkedList_();
|
||||
for (int i = 0; i < 15; i++) {
|
||||
l.add("testL " + i);
|
||||
}
|
||||
System.out.println(l.size());
|
||||
|
||||
Iterator_ it = a.iterator();
|
||||
while (it.hasNext()){
|
||||
Object o = it.next();
|
||||
System.out.println(o);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue