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