问题描述:
提示:如果有些懵,建议先看书或者B站的链表相关内容
在链表上存储500万的整数数据分别用iterator和get(index)的方法遍历,比较时间
难点分析:
提示:这里时间我用来Date类的,其实完全可以不用,可以把Date的相关代码删除就好
下面代码创建链表:
复制代码
1LinkedList<Integer> linkedList = new LinkedList<>();
然后难一点的就是迭代器了,其实都是一些迭代器的基本操作:
复制代码
1
2
3
4Iterator<Integer> iterator = linkedList.iterator(); while (iterator.hasNext()) { iterator.next(); }
代码:
提示:date那个版块其实没必要,因此我把 System.currentTimeMillis()放在Date的前面的,主要还是他来计算耗费的时长。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import java.util.LinkedList; public class exe20_6 { public static void main(String[] args) { LinkedList<Integer> linkedList = new LinkedList<>(); for (int i = 0; i < 5000000; i++) { linkedList.add((int) (Math.random() * 1000000 + 1)); } long start0 = System.currentTimeMillis(); Date date0 = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date0str = simpleDateFormat.format(date0); System.out.println("迭代器开始时间:" + date0str); Iterator<Integer> iterator = linkedList.iterator(); while (iterator.hasNext()) { iterator.next(); } long end0 = System.currentTimeMillis(); Date date1 = new Date(); String date1str = simpleDateFormat.format(date1); System.out.println("迭代器结束时间:" + date1str); System.out.println("迭代器耗费时间:"+(end0-start0)+"ms"); long start1 = System.currentTimeMillis(); Date date2 = new Date(); String date2str = simpleDateFormat.format(date2); System.out.println("get开始时间:" + date2str); for (int i = 0; i < linkedList.size(); i++) { linkedList.get(i); } long end1 = System.currentTimeMillis(); Date date3 = new Date(); String date3str = simpleDateFormat.format(date3); System.out.println("get结束时间:" + date3str); System.out.println("get耗费时间:"+(end1-start1)+"ms"); } }
最后
以上就是追寻帽子最近收集整理的关于java黑皮书20.6----(在链表上使用遍历器)问题描述:难点分析:代码:的全部内容,更多相关java黑皮书20内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复