一、Object [] toArray();
把集合转成数组,可以实现集合的遍历
package Collection;
import java.util.ArrayList;
import java.util.Collection;
/*
* Object[] toArray()
* 把集合转成数组,可以实现集合的遍历
*/
public class ToArrayDemo {
public static void main(String[] args) {
Collection c = new ArrayList();
// 添加元素
c.add("hello");
c.add("word");
c.add("java");
// 把集合转成数组
Object[] b = c.toArray();
System.out.println(b);//[Ljava.lang.Object;@4e25154f
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}
}
}
二、Iterator iterator();
迭代器,集合的专用遍历方式
使用do…while循环没有写出来,那位兄弟,写出来了,请给我留言并交流。谢谢。
package Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* Iterator iterator()
* 迭代器,集合的专用遍历方式
* Iterator:是接口,作用是迭代集合中的元素
* 对 collection 进行迭代的迭代器
* 依赖于集合而存在
* 成员方法:
* boolean hasNext():判断集合是否含有元素
* E next():进行获取元素,并将下标指向下一个元素
*/
public class IteratorDemo {
public static void main(String[] args) {
// 创建一个集合
Collection c = new ArrayList();
// 添加元素
c.add("hello");
c.add("word");
c.add("java");
// 打印集合
System.out.println(c);// [hello, word, java]这是给你看集合中存储了那些元素,但是并不是获取
// 使用获取迭代器
//Iterator it = c.iterator();
// boolean hasNext():判断是否还有元素
/*
* it.hasNext();
* System.out.println(it.next());//hello
* System.out.println(it.next());//word
* System.out.println(it.next());//java
*/
// System.out.println(it.next());//NoSuchElementException
//最终级版本1whlie
/* while(it.hasNext()){
String st = (String)it.next();
System.out.println(st);
}*/
/* //最终级版本2do...whlie 最终没有打印出来
do{
it.hasNext();
String st = (String)it.next();
System.out.println(it.next());
}while(true);//NoSuchElementException:没有next
}*/
//最终级版本3for
for(Iterator it = c.iterator();it.hasNext();){
String st = (String)it.next();
System.out.println(st);
}
}
}
三、创建学生对象并遍历
package Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* 需求:
* 存储自定义对象并遍历
* Student(name,age)
*/
public class CollectionDemo2 {
public static void main(String[] args) {
//创建集合对象
Collection c = new ArrayList();
//创建学生对象
Student st = new Student("唐僧",12);
Student st2 = new Student("孙悟空",10);
Student st3 = new Student("猪八戒",9);
Student st4 = new Student("沙师弟",8);
//添加学生对象至集合
c.add(st);
c.add(st2);
c.add(st3);
c.add(st4);
//遍历集合
Iterator it = c.iterator();
while(it.hasNext()){
Student s = (Student) it.next();
System.out.println(s.getName() +"....." + s.getAge());
}
//使用for循环
Object[] o = c.toArray();
for(int i = 0; i < o.length;i++){
System.out.println( ((Student) o[i]).getName() +"....." + ((Student) o[i]).getAge());
}
}
}
四、思考一个问题:
Iterator接口 为什么不定义成一个类,而是一个接口?