内功心法 -- java.util.ArrayList<E> (1)
2017-02-07 21:03
441 查看
写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
下文主要对java.util.ArrayList<E>进行整体性介绍,主要内容包括:
1、 ArrayList概述
2、 ArrayList中的属性、构造方法、常用方法介绍
3、 ArrayList遍历
参考内容:
1、JDK源码(1.7)
--------------------------------------------------------------------
1. ArrayList概述
java.util.ArrayList<E>是一个什么玩意,它有什么功能,我们拿ArrayList能够干嘛?
简单点说:java.util.ArrayList<E>是一个列表类,它是用来存放其他Java对象,内部是通过数组来实现的。
先看下面的图(简略图):
View Code
----------------------------------------------------------------------------------------
java.util.ArrayList系列文章
java.util.ArrayList<E>(1) java.util.ArrayList<E>(2) java.util.ArrayList<E>(3)
java.util.ArrayList<E>(4) java.util.ArrayList<E>(5) java.util.ArrayList<E>(6)
相关知识
java.util.Collection<E> java.util.AbstractCollection<E> java.util.List<E>
java.util.AbstractList<E> java.util.Iterator<E> java.util.ListIterator<E>
Java中的标记接口 迭代器模式 Java中的深拷贝和浅拷贝 java.util.Arrays
--------------------------------------------------------------------
下文主要对java.util.ArrayList<E>进行整体性介绍,主要内容包括:
1、 ArrayList概述
2、 ArrayList中的属性、构造方法、常用方法介绍
3、 ArrayList遍历
参考内容:
1、JDK源码(1.7)
--------------------------------------------------------------------
1. ArrayList概述
java.util.ArrayList<E>是一个什么玩意,它有什么功能,我们拿ArrayList能够干嘛?
简单点说:java.util.ArrayList<E>是一个列表类,它是用来存放其他Java对象,内部是通过数组来实现的。
先看下面的图(简略图):
1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 6 public class ArrayListAccessDemo { 7 /** 8 * 通过索引值去遍历(随机访问) 9 */ 10 public static void accessByIndex(List<Integer> list){ 11 long beginTime = System.currentTimeMillis(); 12 for(int i = 0;i < list.size();i++){ 13 list.get(i); 14 } 15 long endTime = System.currentTimeMillis(); 16 long totalTime = endTime - beginTime; 17 System.out.println("通过索引值去遍历(随机访问) 花费的时间:" + totalTime+" 毫秒"); 18 19 } 20 21 /** 22 * 通过增强的for循环去遍历 23 */ 24 public static void accessByFor(List<Integer> list){ 25 long beginTime = System.currentTimeMillis(); 26 for(Integer i : list){ 27 list.get(i); 28 } 29 long endTime = System.currentTimeMillis(); 30 long totalTime = endTime - beginTime; 31 System.out.println("通过增强的for循环去遍历 花费的时间:" + totalTime+" 毫秒"); 32 33 } 34 35 /** 36 * 通过Iterator迭代器去遍历 37 */ 38 public static void accessByIterator(List<Integer> list){ 39 long beginTime = System.currentTimeMillis(); 40 Iterator<Integer> it = list.iterator(); 41 while(it.hasNext()){ 42 it.next(); 43 } 44 long endTime = System.currentTimeMillis(); 45 long totalTime = endTime - beginTime; 46 System.out.println("通过Iterator迭代器去遍历 花费的时间:" + totalTime+" 毫秒"); 47 48 } 49 50 public static void main(String[] args) { 51 //创建一个ArrayList实例 52 List<Integer> list = new ArrayList<Integer>(); 53 //往ArrayList实例中添加数据 54 for(int i = 0;i < 10000000;i++){ 55 list.add(i); 56 } 57 58 accessByIndex(list); 59 accessByFor(list); 60 accessByIterator(list); 61 } 62 } 63 64 运行结果: 65 ArrayList中有100W条数据时: 66 通过索引值去遍历(随机访问) 花费的时间:2 毫秒 67 通过增强的for循环去遍历 花费的时间:9 毫秒 68 通过Iterator迭代器去遍历 花费的时间:4 毫秒 69 70 ArrayList中有500W条数据时: 71 通过索引值去遍历(随机访问) 花费的时间:4 毫秒 72 通过增强的for循环去遍历 花费的时间:20 毫秒 73 通过Iterator迭代器去遍历 花费的时间:9 毫秒 74 75 ArrayList中有1000W条数据时: 76 通过索引值去遍历(随机访问) 花费的时间:3 毫秒 77 通过增强的for循环去遍历 花费的时间:32 毫秒 78 通过Iterator迭代器去遍历 花费的时间:13 毫秒 79 80 ArrayList中有5000W条数据时: 81 通过索引值去遍历(随机访问) 花费的时间:3 毫秒 82 通过增强的for循环去遍历 花费的时间:118 毫秒 83 通过Iterator迭代器去遍历 花费的时间:55 毫秒
View Code
----------------------------------------------------------------------------------------
java.util.ArrayList系列文章
java.util.ArrayList<E>(1) java.util.ArrayList<E>(2) java.util.ArrayList<E>(3)
java.util.ArrayList<E>(4) java.util.ArrayList<E>(5) java.util.ArrayList<E>(6)
相关知识
java.util.Collection<E> java.util.AbstractCollection<E> java.util.List<E>
java.util.AbstractList<E> java.util.Iterator<E> java.util.ListIterator<E>
Java中的标记接口 迭代器模式 Java中的深拷贝和浅拷贝 java.util.Arrays
相关文章推荐
- 内功心法 -- java.util.ArrayList<E> (1)
- 内功心法 -- java.util.ArrayList<E> (2)
- 内功心法 -- java.util.ArrayList<E> (3)
- 内功心法 -- java.util.ArrayList<E> (1)
- 内功心法 -- java.util.ArrayList<E> (4)
- 内功心法 -- java.util.ArrayList<E> (5)
- 内功心法 -- java.util.ArrayList<E> (1)
- 内功心法 -- java.util.ArrayList<E> (6)
- 内功心法 -- java.util.LinkedList<E> (7)
- 内功心法 -- java.util.LinkedList<E> (8)
- 内功心法 -- java.util.LinkedList<E> (3)
- 内功心法 -- java.util.LinkedList<E> (2)
- 内功心法 -- java.util.LinkedList<E> (4)
- 内功心法 -- java.util.LinkedList<E> (5)
- 内功心法 -- java.util.LinkedList<E> (6)
- 内功心法 -- java.util.LinkedList<E> (1)
- cannot resolve construtor 'ArrayList(java.util.Collction<java.lang.String>)'
- 1. java.util.List 与 2.java.util.ArrayList<E>
- java.util.ArrayList<E>
- [Java] Convert Between the Two, String[] and ArrayList<String>