java吧 关注:1,256,795贴子:12,747,862
  • 0回复贴,共1
我想知道为什么是null?
/**
* @author Xuan
*/
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Test05 {
public static void main(String[] args) {
//ArrayList<String> al2 = new ArrayList<>();
//al2.add("fbb");
//al2.add("lbb");
//al2.add("bb");
//System.out.println(al2.toString());
//ArrayList al2 = new ArrayList();
//al2.add(al2);
//System.out.println(al2.toString());
//手写Al
Al<String> al = new Al();
al.add("fbb");//0
al.add("lbb");//1
al.add("bb");//2
//al.add(666);//2
System.out.println(al.toString());
System.out.println(al.next());//fbb
System.out.println(al.next());//lbb
System.out.println(al.next());//lbb
//System.out.println(al.iterator());
//while (al.hasNext()) {
// System.out.println(al.next().toString());
//}
//Iterator it = al.iterator();//it=this=al
//
//while (it.hasNext()) {
// System.out.println(it.next());
//}
}
}
class Al<E> implements Iterator,Iterable{
private Object[] arr = new Object[10];//集合的底层是数组,引用数据类型的默认值是null
private int index = -1;
//迭代器底层原理内置了一个指针,一开始在集合的外面,每调用一次next方法,指针向下移动一次,得到对应的元素
private int pointer = -1;
public void add(E ele){
++index;
//集合数组扩容原理:只要索引越界,那就扩容搞一个新数组,把旧数组元素拷贝到新数组,给新数组元素赋值,还要赋值新数组地址值给旧数组,来丢弃旧数组
if (index>=arr.length){
Object[] arr2 = new Object[arr.length+1];
System.arraycopy(arr,0,arr2,0,arr.length);
arr2[index] = ele;
//arr=arr2指向新数组,给下面toString()用
arr = arr2;
return;
}
arr[index] = ele;
}
@Override
public String toString(){
Iterator<E> it = this.iterator();
if(! it.hasNext()){
return "[]";
}
StringBuilder sb = new StringBuilder();
sb.append("[");
while (tru


IP属地:广东来自Android客户端1楼2021-11-21 21:21回复