一.对泛型的了解
1.泛型:是一种特殊的类型,是一种创建对象或调用方法时才明确数据类型的特殊类型。参数化类型,把类型当参数一样传递
2.泛型优点
A:把运行期间的问题提前到了编译期间
B:避免了强制类型转换
3.泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法
package FanXing;
import java.util.ArrayList;
import java.util.Iterator;
public class FanXingTest555{
public static void main(String[] args) {
ArrayList<Student> array =new ArrayList<Student>();
Student s1=new Student("精",16);
Student s2=new Student("神",17);
Student s3=new Student("小",18);
Student s4=new Student("伙",19);
//添加元素
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
Iterator it= array.iterator(); //迭代器
while(it.hasNext()){
Student s= (Student) it.next(); //向下转型
System.out.println(s.getage()+" "+s.getName());
}
/* Iterator<Student> it = array.iterator(); //或者直接明确类型
while (it.hasNext()) {
Student s = it.next();
System.out.println(s.getage() + " " + s.getName());
}*/
for(int x=0;x<array.size();x++){
Student s= (Student) it.next(); //向下转型
System.out.println(s.getage()+" "+s.getName());
}
}
}
结果是:
16 精
17 神
18 小
19 伙
二.对迭代器的理解
1.迭代器是一种遍历集合的方式,依赖集合而存在。
2.迭代器是一个接口,以在具体类中,以内部类的形式体现。
3.通过集合获取迭代器对象:Iterator it=c.iterator()(c是集合对象)
4.迭代器的常用方法:next()、hasNext()
5.集合使用步骤:
A:创建集合对象
B: 添加元素对象
C. 把元素添加到集合
D. 通过迭代器使用hasNext()判断是否有元素,next()方法获取元素并移动到下一位置
三.集合源码toString()源码的解析
代码:
Collection c=new ArrayList();
c.add("hello");
c.add("world");
C.add("java");
//源码如下:
public String toString() {
Iterator<E> it = iterator();//集合本身调用迭代器,得到集合迭代器
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next(); //e=hello,world,java
sb.append(e == this ? "(this Collection)" : e) ;//相当于sb(e)
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}
1.ArrayList中无toString(),但其父类AbstractCollection有