parent
b90e6bab97
commit
5e9a629668
@ -0,0 +1,27 @@
|
|||||||
|
package com.msb.iterator.v4;/**
|
||||||
|
* @Author bingor
|
||||||
|
* @Date 2022/10/17 18:59
|
||||||
|
* @Description: com.msb.iterator.v4
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*@ClassName Dog
|
||||||
|
*@Description TODO
|
||||||
|
*@Author bingor
|
||||||
|
*@Date 2022/10/17 18:59
|
||||||
|
*@Version 3.0
|
||||||
|
*/
|
||||||
|
public class Dog {
|
||||||
|
private int id;
|
||||||
|
public Dog(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Dog{" +
|
||||||
|
"id=" + id +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
package com.msb.iterator.v5;/**
|
||||||
|
* @Author bingor
|
||||||
|
* @Date 2022/10/17 17:06
|
||||||
|
* @Description: com.msb.iterator.v1
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*@ClassName ArrayList_
|
||||||
|
*@Description TODO
|
||||||
|
*@Author bingor
|
||||||
|
*@Date 2022/10/17 17:06
|
||||||
|
*@Version 3.0
|
||||||
|
*/
|
||||||
|
public class ArrayList_<T> implements Collection_<T> {
|
||||||
|
|
||||||
|
private T[] objects = (T[]) new Object[10];
|
||||||
|
private int index = 0;
|
||||||
|
private int step = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(T o) {
|
||||||
|
if(index == objects.length) {
|
||||||
|
T[] newObjects = (T[]) new Object[2*objects.length];
|
||||||
|
System.arraycopy(objects, 0, newObjects, 0, objects.length);
|
||||||
|
objects = newObjects;
|
||||||
|
}
|
||||||
|
objects[index] = o;
|
||||||
|
index ++;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int size() {
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterator_ iterator() {
|
||||||
|
return new ArrayListIterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ArrayListIterator implements Iterator_<T> {
|
||||||
|
private int currentIndex = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hashNext() {
|
||||||
|
if(this.currentIndex >= objects.length) return false;
|
||||||
|
if(objects[this.currentIndex] == null) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T next() {
|
||||||
|
return objects[this.currentIndex++];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.msb.iterator.v5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author bingor
|
||||||
|
* @Date 2022/10/17 17:53
|
||||||
|
* @Description: com.msb.iterator.v3
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
public interface Collection_<T> {
|
||||||
|
public void add(T o);
|
||||||
|
public int size();
|
||||||
|
public Iterator_<T> iterator();
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.msb.iterator.v5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author bingor
|
||||||
|
* @Date 2022/10/17 18:00
|
||||||
|
* @Description: com.msb.iterator.v4
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
public interface Iterator_<T> {
|
||||||
|
public boolean hashNext();
|
||||||
|
public T next();
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.msb.iterator.v5;/**
|
||||||
|
* @Author bingor
|
||||||
|
* @Date 2022/10/17 17:54
|
||||||
|
* @Description: com.msb.iterator.v3
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
import com.msb.iterator.v4.Dog;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*@ClassName Main
|
||||||
|
*@Description TODO
|
||||||
|
*@Author bingor
|
||||||
|
*@Date 2022/10/17 17:54
|
||||||
|
*@Version 3.0
|
||||||
|
*/
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Collection_ list = new LinkedList_();
|
||||||
|
for (int i=0; i<15; i++) {
|
||||||
|
list.add(new Dog(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
Iterator_ iterator = list.iterator();
|
||||||
|
while (iterator.hashNext()) {
|
||||||
|
System.out.println(iterator.next());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue