java--ArrayList,LinkedList应用比较
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListDemo {
//jdk8
public static void main(String[] args){
// add("ArrayList",50000);//11
// add("LinkedList",50000);//8
// add("ArrayList",1000000);//81
// add("LinkedList",1000000);//132
// addFirst("ArrayList",5000);//7
// addFirst("LinkedList",5000);//2
// addFirst("ArrayList",50000);//160
// addFirst("LinkedList",50000);//5
// remove("ArrayList",5000);//1
// remove("LinkedList",5000);//2
// remove("ArrayList",1000000);//2
// remove("LinkedList",1000000);//15
//
// removeFirst("ArrayList",5000);//5
// removeFirst("LinkedList",5000);//1
// removeFirst("ArrayList",100000);//795
// removeFirst("LinkedList",100000);//2
// removeMiddle("ArrayList",5000);//3
// removeMiddle("LinkedList",5000);//23
// removeMiddle("ArrayList",100000);//446
// removeMiddle("LinkedList",100000);//5637
}
public static void add(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}else {
LinkedList<Object> list = new LinkedList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void addFirst(String s,int a){
if (s.equals("ArrayList")){
ArrayList<Object> list = new ArrayList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}else {
LinkedList<Object> list = new LinkedList<>();
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.addFirst(new Object());
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void remove(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.remove(list.size()-1);
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.removeLast();
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void removeFirst(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.remove(0);
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(0,new Object());
}
long begin = System.currentTimeMillis();
for (int i = 0; i < a; i++) {
list.removeFirst();
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
public static void removeMiddle(String s,int a){
if (s.equals("ArrayList")){
List<Object> list = new ArrayList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
while (list.size()>0){
list.remove(list.size()>>1);//右移/2,左移*2
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
} else {
LinkedList<Object> list = new LinkedList<>();
for (int i = 0; i < a; i++) {
list.add(i);
}
long begin = System.currentTimeMillis();
while (list.size()>0){
list.remove(list.size()>>1);//右移/2,左移*2
}
long end = System.currentTimeMillis();
System.out.println(a+" "+s+":"+(end - begin));
}
}
}
java--ArrayList,LinkedList应用比较的更多相关文章
- Java ArrayList、Vector和LinkedList等的差别与用法(转)
Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...
- java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)
一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...
- [Java]ArrayList、LinkedList、Vector、Stack的比较
一.介绍 先回顾一下List的框架图 由图中的继承关系,可以知道,ArrayList.LinkedList.Vector.Stack都是List的四个实现类. AbstractList是一个抽象类,它 ...
- Java集合--ArrayList,LinkedList性能分析
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- 浅谈Java中linkedlist和arraylist区别
在Java中,关于集合框架有这样一个体系结构: 其主要由两个接口派生而出:Collection和Map,然后再衍生出各自的一些实现类(比如Collection接口又被继承与Set和List接口,而他们 ...
- Java ArrayList和LinkedList
目录 集合的概念 集合体系结构 常用list集合 list集合的特点 ArrayList LinkedList 创建对象 常用方法 遍历 ArrayList和LinkedList的区别 集合的概念 ...
- java.util.ArrayList,java.util.LinkedList,java.util.Vector的区别,使用场合.
下图是Collection的类继承图 从图中可以看出:Vector.ArrayList.LinkedList这三者都实现了List 接口.所有使用方式也很相似,主要区别在于实现方式的不同,所以对不同的 ...
- java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?
Vector,ArrayList,LinkedList均为线性的数据结构,但是从现实方式与应用场景中又存在差别. 1 底层实现方式 ArrayList内部数组来实现,LinkedList内部采用双向链 ...
- Java Collection - ArrayList & LinkedList
总结 ref: https://blog.csdn.net/qq_32679815/article/details/78907437 1-ArrayList是实现了基于动态数组的数据结构,Linked ...
随机推荐
- 向指定URL 发送POST请求的方法
java发送psot请求: package com.tea.web.admin; import java.io.BufferedReader; import java.io.IOException; ...
- iOS系统日历选择问题
参考:https://blog.csdn.net/lg_sun/article/details/78913064 -(NSString *)getTimeToken{ NSDateFormatter ...
- sql查看数据库环境及一些参数
sql查看数据库环境及一些参数 select parent_obj from sysobjects where name='FK_Student_banjiID' --根据外键名得到外表id sele ...
- Security基础(五):部署Cacti监控平台、构建Cacti监测系统
一.部署Cacti监控平台 目标: 本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备: 安装net-snmp.net-snmp-utils 安装LAMP及相关 ...
- C# 调用windows时间同步服务获取准确时间
//创建一个Daytime类代码如下:using System; using System.Collections; using System.Collections.Generic; using S ...
- Linux测试端口的连通性的四种方法
目录 1.telnet 2.ssh 3.crul 4.wget 方法一.telnet telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性,具体用法 ...
- Union比or快 Using UNION is faster when it comes to cases like scan two different column。
problem: 595. Big Countries A country is big if it has an area of bigger than 3 million square km or ...
- 用 Flask 来写个轻博客 (28) — 使用 Flask-Assets 压缩 CSS/JS 提升网页加载速度
Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 扩展阅读 Flask-Assets 将 Flask-Assets 应用 ...
- Maven Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
因此:maven中,配置文件的读取应有下列红字两部分,缺一不可. 不是maven项目时,可以都不写........ <context-param> <param-name>co ...
- Day 56 jquery
一 .事件委托实例 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...