话不多少,直接上代码

import java.text.SimpleDateFormat;
import java.util.*;

public class testList {
public static void main(String[] args) {

testLinkedList_ArrayList_Array_SetAsInt();
testLinkedList_ArrayList_Array_SetAsString();
testLinkedList_ArrayList_Array_SetAsStringAsToValueOf();
}

public static void testLinkedList_ArrayList_Array_SetAsInt(){
//下面是不用的数据类型循环100W次的测试代码(基本类型和引用类型的差别很大,下面使用的都是int类型)
System.out.println("下面是不同的数据类型循环100W次的测试代码(基本类型和引用类型的差别很大,下面使用的都是int类型)");
long startL= new Date().getTime();
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < 1000000; i++) {
//list.add(String.valueOf(i));
list.add(i);
}
long endL = new Date().getTime();
System.out.println("linkedList:startL:"+startL +" endL:"+endL +" 差值:" +(endL-startL) +"毫秒");
long senStrat = new Date().getTime();
List<Integer> list2 = new ArrayList<Integer>();
for (int i = 0; i < 1000000; i++) {
//list2.add(String.valueOf(i));
list2.add(i);
}
long senEndL = new Date().getTime();
System.out.println("ArrayList:startL:"+senStrat +" endL:"+senEndL +" 差值:" +(senEndL-senStrat) +"毫秒");
// System.out.println("传入的日期与今年的年份差为:" + (year - oldYear));
long thrStrat = new Date().getTime();
int[] arrInt = new int[1000000];
for (int i = 0; i <arrInt.length ; i++) {
// arrInt[i]=String.valueOf(i);
arrInt[i]= i;
}
long thrEndL = new Date().getTime();
System.out.println("int []:startL:"+thrStrat +" endL:"+thrEndL +" 差值:" +(thrEndL-thrStrat) +"毫秒");
long fouStrat = new Date().getTime();
Set<Integer> set = new HashSet<>();
for (int i = 0; i < 1000000; i++) {
set.add(i);
}
long fouEndL = new Date().getTime();
System.out.println("Set:startL:"+fouStrat +" endL:"+fouEndL +" 差值:" +(fouEndL-fouStrat) +"毫秒");
}

public static void testLinkedList_ArrayList_Array_SetAsString(){
//下面是不用的数据类型循环100W次的测试代码(基本类型和引用类型的差别很大,下面使用的都是String类型)
System.out.println("下面是不同的数据类型循环100W次的测试代码(下面使用的都是String类型,为了减少装箱直接使用:dd)");
long startL= new Date().getTime();
LinkedList<String> list = new LinkedList<String>();
for (int i = 0; i < 1000000; i++) {
list.add("dd");

}
long endL = new Date().getTime();
System.out.println("linkedList:startL:"+startL +" endL:"+endL +" 差值:" +(endL-startL) +"毫秒");
long senStrat = new Date().getTime();
List<String> list2 = new ArrayList<String>();
for (int i = 0; i < 1000000; i++) {
//list2.add(String.valueOf(i));
list2.add("dd");
}
long senEndL = new Date().getTime();
System.out.println("ArrayList:startL:"+senStrat +" endL:"+senEndL +" 差值:" +(senEndL-senStrat) +"毫秒");
// System.out.println("传入的日期与今年的年份差为:" + (year - oldYear));
long thrStrat = new Date().getTime();
String[] arrInt = new String[1000000];
for (int i = 0; i <arrInt.length ; i++) {
// arrInt[i]=String.valueOf(i);
arrInt[i]="dd";
}
long thrEndL = new Date().getTime();
System.out.println("String []:startL:"+thrStrat +" endL:"+thrEndL +" 差值:" +(thrEndL-thrStrat) +"毫秒");
long fouStrat = new Date().getTime();
Set<String> set = new HashSet<>();
for (int i = 0; i < 1000000; i++) {
set.add("dd");
}
long fouEndL = new Date().getTime();
System.out.println("Set:startL:"+fouStrat +" endL:"+fouEndL +" 差值:" +(fouEndL-fouStrat) +"毫秒");
}

public static void testLinkedList_ArrayList_Array_SetAsStringAsToValueOf(){
//下面是不用的数据类型循环100W次的测试代码(基本类型和引用类型的差别很大,下面使用的都是String类型)
System.out.println("下面是不同的数据类型循环100W次的测试代码(下面使用的都是String类型,使用装箱String.Values())");
long startL= new Date().getTime();
LinkedList<String> list = new LinkedList<String>();
for (int i = 0; i < 10000000; i++) {
list.add(String.valueOf(i));

}
long endL = new Date().getTime();
System.out.println("linkedList:startL:"+startL +" endL:"+endL +" 差值:" +(endL-startL) +"毫秒");
long senStrat = new Date().getTime();
List<String> list2 = new ArrayList<String>();
for (int i = 0; i < 10000000; i++) {
//list2.add(String.valueOf(i));
list2.add(String.valueOf(i));
}
long senEndL = new Date().getTime();
System.out.println("ArrayList:startL:"+senStrat +" endL:"+senEndL +" 差值:" +(senEndL-senStrat) +"毫秒");
// System.out.println("传入的日期与今年的年份差为:" + (year - oldYear));
long thrStrat = new Date().getTime();
String[] arrInt = new String[10000000];
for (int i = 0; i <arrInt.length ; i++) {
// arrInt[i]=String.valueOf(i);
arrInt[i]=String.valueOf(i);
}
long thrEndL = new Date().getTime();
System.out.println("String []:startL:"+thrStrat +" endL:"+thrEndL +" 差值:" +(thrEndL-thrStrat) +"毫秒");
long fouStrat = new Date().getTime();
Set<String> set = new HashSet<>();
for (int i = 0; i < 10000000; i++) {
set.add(String.valueOf(i));
}
long fouEndL = new Date().getTime();
System.out.println("Set:startL:"+fouStrat +" endL:"+fouEndL +" 差值:" +(fouEndL-fouStrat) +"毫秒");
}
}

执行结果如下:

下面是不同的数据类型循环100W次的测试代码(基本类型和引用类型的差别很大,下面使用的都是int类型)
linkedList:startL:1578973503867 endL:1578973503901 差值:34毫秒
ArrayList:startL:1578973503901 endL:1578973503953 差值:52毫秒
int []:startL:1578973503953 endL:1578973503954 差值:1毫秒
Set:startL:1578973503954 endL:1578973504079 差值:125毫秒
下面是不同的数据类型循环100W次的测试代码(下面使用的都是String类型,为了减少装箱直接使用:dd)
linkedList:startL:1578973504079 endL:1578973504100 差值:21毫秒
ArrayList:startL:1578973504100 endL:1578973504114 差值:14毫秒
String []:startL:1578973504114 endL:1578973504117 差值:3毫秒
Set:startL:1578973504117 endL:1578973504145 差值:28毫秒
下面是不同的数据类型循环100W次的测试代码(下面使用的都是String类型,使用装箱String.Values())
linkedList:startL:1578973504145 endL:1578973504285 差值:140毫秒
ArrayList:startL:1578973504285 endL:1578973504798 差值:513毫秒
String []:startL:1578973504798 endL:1578973504847 差值:49毫秒
Set:startL:1578973504847 endL:1578973505009 差值:162毫秒

java中LinkedList ArrayList 数组 HashSet 存储数据测试的更多相关文章

  1. 为什么 char 数组比 Java 中的 String 更适合存储密码?

    另一个基于 String 的棘手 Java 问题,相信我只有很少的 Java 程序员可以正确回答这个问题.这是一个真正艰难的核心Java面试问题,并且需要对 String 的扎实知识才能回答这个问题. ...

  2. 在Java中怎样把数组转换为ArrayList?

    翻译自:How to Convert Array to ArrayList in Java? 本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在S ...

  3. 浅谈Java语言中ArrayList和HashSet的区别

    Java语言中ArrayList和HashSet的区别 2019-04-10   13:22:49 一.基本区别 首先一起看个实例,其代码如下: package com.MrZ_baby.com; i ...

  4. 实现Java中的ArrayList

    最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非 ...

  5. 【Java必修课】ArrayList与HashSet的contains方法性能比较(JMH性能测试)

    1 简介 在日常开发中,ArrayList和HashSet都是Java中很常用的集合类. ArrayList是List接口最常用的实现类: HashSet则是保存唯一元素Set的实现. 本文主要对两者 ...

  6. 转载-Java中LinkedList的一些方法—addFirst addFirst getFirst geLast removeFirst removeLast

    Java中LinkedList的一些方法—addFirst addFirst getFirst geLast removeFirst removeLast 版权声明:本文为博主原创文章,遵循CC 4. ...

  7. Java中创建泛型数组

    Java中创建泛型数组 使用泛型时,我想很多人肯定尝试过如下的代码,去创建一个泛型数组 T[] array = new T[]; 当我们写出这样的代码时编译器会报Cannot create a gen ...

  8. java中的基本数据类型一定存储在栈中吗?

    首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的. 下面让我们一起来分析一下原因: 基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型 ...

  9. 深入理解java中的ArrayList和LinkedList

    杂谈最基本数据结构--"线性表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0 ...

随机推荐

  1. Linux_yum安装时报404错误

    使用yum安装报错如下: [root@localhost ~]# yum install gcc 已加载插件:fastestmirror Loading mirror speeds from cach ...

  2. 使用用支付宝时,返回的数据中subject为中文时验签失败

    解决方法为: 来自为知笔记(Wiz)

  3. Mysql实训任务书

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6635189537079296526/ 什么是数据库:数据库(Database)是按照数据结构来组织.存储和管理数据 ...

  4. Educational Codeforces Round 117 (Rated for Div. 2)

    Educational Codeforces Round 117 (Rated for Div. 2) A. Distance https://codeforces.com/contest/1612/ ...

  5. 新设备关联Gitlab

    新设备关联Gitlab 1:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果 ...

  6. [STM32F4xx 学习] SPI小结

    一.STM32F4xx系列的SPI特点: 1. 支持全双工的3线SPI模式(即SCK, MISO, MOSI) 2. 支持单工2线传输,同时数据线可以设置成单向或者双向模式 3. 8-bit, 16- ...

  7. idea 插件推荐

    工欲善其事必先利其器,本文介绍几个自己在开发过程中常用的idea插件 安装方法 idea 里面在线安装 settings>plugins>marketplace 里面搜索安装 idea 官 ...

  8. 【刷题-LeetCode】179 Largest Number

    Largest Number Given a list of non negative integers, arrange them such that they form the largest n ...

  9. linux中链接错误的时候,快速找到缺失的符号在哪个库中

    编译一个opencv程序,链接的时候出现大量的如下错误: /home/admin/opencv/opencv-master/modules/imgproc/src/color_lab.cpp:23: ...

  10. IoC容器-Bean管理注解方式(创建对象)

    IoC操作Bean管理(基于注解方式) 1,什么是注解 (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...) (2)使用注解,注解作用在类上面,方法上面,属性上面 ( ...