Course cr1=new Course("1","数据结构"); //这是一个实例化
Iterator it=courseToSelect.iterator();//这也是一个实例
两者到底该怎么使用呢?
Course cr1=
new
Course(
"1"
,
"数据结构"
):
Course之前定义是一个构造方法,
new
Course作用是实例化对象并赋初值
("1"
,
"数据结构"
)
,对象名为cr1,类型为Course.
Iterator it=courseToSelect.iterator():可以理解为对象courseToSelect调用iterator()方法.用Iterator类型的变量 it对结果进行接收.
我也是初学者,不知理解是否合理,大家相互交流.
collection接口都实现了Iterator接口。iterator接口是迭代器。他的作用类似for循环,(后面应该会讲到其实有一种增强的for循环底层还是迭代器)他可以遍历collection的元素。看源码(这是Arraylist下的iterator()方法)
Iterator<E> iterator();
/**
* Returns an array containing all of the elements in this list in proper
* sequence (from first to last element).
返回类型为Iterator。不知道我是否说清楚了
我觉得你的疑惑是关于第二个实例化,为什么没有new关键字,我觉得应该是上面那个兄弟说的,创建实例有不同的方法。
这种当然可以啊。就好像人有善恶,创建实例也是可以有不同方式的。
你看一下JDK帮助文档就知道。调用Iterator()方法就是返回一个在一组 T 类型的元素上进行迭代的迭代器。
拿到这个迭代器之后你才可以迭代啊。。
Course cr1=new Course("1","数据结构");
这个创建一个Course类的集合对象cr1。
Iterator it=courseToSelect.iterator();
Iterator叫迭代器,可用来遍历集合中的元素。courseToSelect也是一个集合对象,创建后通过调用xx.hasNext() 判断是否还有元素,通过xx.next()返回object类型的结果,(放到集合中的元素所有的类型都变成object,所以取出来的时候也是object,因此需要进行相应的转换)。下面是例子:
Public class CollectionEach{
public static void main(String[] args)
{
Collection test = new Collection();
test.add("这是一句字符串");
test.add("另一句字符串");
test.add("还有一句xxxx");
Iterator it = new Iterator();
//判断是否有元素
while(it.hasNext())
{
//取出集合中的一个元素,并强转为String类型
String str = (String)it.next();
System.out.println("通过迭代器遍历集合:"+str);
}
}
}
我也是初学者,感觉你学的有点混乱。或者我不知道你想问什么。不太懂的话,还是建议从第一季看起啊,面向对象的基础要掌握好才行。加油~~