黑马程序员---ArrayList遍历的三种方式

------- 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 array = new ArrayList();

		// 创建元素对象
		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。



 
 

你可能感兴趣的:(黑马程序员---ArrayList遍历的三种方式)