黑马软件工程师-ArrayList遍历的三种方式
黑马程序员---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<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。
版权声明:本文为博主原创文章,未经博主允许不得转载。