概述
问题描述:
提示:如果有些懵,建议先看书或者B站的链表相关内容
在链表上存储500万的整数数据分别用iterator和get(index)的方法遍历,比较时间
难点分析:
提示:这里时间我用来Date类的,其实完全可以不用,可以把Date的相关代码删除就好
下面代码创建链表:
LinkedList<Integer> linkedList = new LinkedList<>();
然后难一点的就是迭代器了,其实都是一些迭代器的基本操作:
Iterator<Integer> iterator = linkedList.iterator();
while (iterator.hasNext()) {
iterator.next();
}
代码:
提示:date那个版块其实没必要,因此我把 System.currentTimeMillis()放在Date的前面的,主要还是他来计算耗费的时长。
import 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.6----(在链表上使用遍历器)问题描述:难点分析:代码:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复