------- android培训、java培训、期待与您交流! ----------
学习ArrayList过程中,发现ArrayList的遍历有好多种,既可以用for循环遍历,又可以用迭代器遍历,还可以使用增强版for循环,看完刘意老师的视频后,把ArrayList的遍历方式总结了一下,下面是遍历ArrayList的三种方式:
package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
// 创建集合对象
ArrayList<Person> array = new ArrayList<Person>();
// 创建元素对象
Person p1 = new Person("和珅", 50, "河北");
Person p2 = new Person("鳌拜", 57, "北京");
Person p3 = new Person("秦桧", 60, "山西");
Person p4 = new Person("赵高", 55, "西安");
// 把元素添加到集合
array.add(p1);
array.add(p2);
array.add(p3);
array.add(p4);
//for循环遍历集合
for (int x = 0; x < array.size(); x++) {
Person s = (Person) array.get(x);
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getAddress());
}
// 遍历
Iterator it = array.iterator();
while (it.hasNext()) {
Person s = (Person) it.next();
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getAddress());
}
// 遍历集合
for (Person p : array) {
System.out.println(p.getName() + "---" + p.getAge() + "---"
+ p.getAddress());
}
}
}
LinkedList迭代器的next函数只是通过next指针快速得到下一个元素并返回。而get方法会从头遍历直到index下标,查找一个元素时间复杂度为哦O(n),遍历的时间复杂度就达到了O(n2)。
迭代器,增强for,普通for都可以实现数据的遍历,那么我们到底使用谁呢?
迭代器,增强for可以看成是一个东西,这两个东西在使用的时候,可以2选1。我们自己写选择增强for。如果在遍历的过程中需要用到和元素的索引相关的内容的时候,需要使用普通for。