zoukankan      html  css  js  c++  java
  • java交集retainAll 和 Sets.intersection 性能比较

    package com.qxy.test.services.facade;

    import com.google.common.collect.ImmutableSet;
    import com.google.common.collect.Lists;
    import com.google.common.collect.Sets;

    import java.util.List;

    public class TestMain {

    public static void intersection(int length1,int length2) {
    List<Integer> list1 = Lists.newLinkedList();
    for (int i = 0 ;i < length1; i++){
    list1.add(i);
    }

    List<Integer> list2 = Lists.newLinkedList();
    for (int i = 0 ;i < length2; i++){
    list2.add(i);
    }

    long start = System.currentTimeMillis();
    list1.retainAll(list2);
    long end = System.currentTimeMillis();
    System.out.println("list.retainAll 消耗时间(数量:"+ length1 +"):" + (end - start));

    long start1 = System.currentTimeMillis();
    Sets.intersection(ImmutableSet.copyOf(list1),
    ImmutableSet.copyOf(list2));
    long end1 = System.currentTimeMillis();
    System.out.println("Sets.intersection消耗时间(数量:"+ length2 +"):" + (end1 - start1));
    }

    public static void main(String[] args) {
    int[] array = {10,100,1000,5000,10000,50000,100000};
    for (int i = 0 ;i<array.length; i++){
    intersection(array[i],array[i]);
    }
    System.out.println("两个结果集不一样--------------------------");
    for (int i = 0 ; i < array.length; i++){
    intersection(array[i],array[i]/10);
    }
    System.out.println("两个结果集不一样--------------------------");
    for (int i = 0 ; i < array.length; i++){
    intersection(array[i]/10,array[i]);
    }
    }
    }

     结果如下:

    list.retainAll 消耗时间(数量:10):1
    Sets.intersection消耗时间(数量:10):52
    list.retainAll 消耗时间(数量:100):1
    Sets.intersection消耗时间(数量:100):0
    list.retainAll 消耗时间(数量:1000):7
    Sets.intersection消耗时间(数量:1000):1
    list.retainAll 消耗时间(数量:5000):51
    Sets.intersection消耗时间(数量:5000):1
    list.retainAll 消耗时间(数量:10000):177
    Sets.intersection消耗时间(数量:10000):3
    list.retainAll 消耗时间(数量:50000):3486
    Sets.intersection消耗时间(数量:50000):6
    list.retainAll 消耗时间(数量:100000):11931
    Sets.intersection消耗时间(数量:100000):5
    两个结果集不一样--------------------------
    list.retainAll 消耗时间(数量:10):0
    Sets.intersection消耗时间(数量:1):0
    list.retainAll 消耗时间(数量:100):0
    Sets.intersection消耗时间(数量:10):0
    list.retainAll 消耗时间(数量:1000):0
    Sets.intersection消耗时间(数量:100):0
    list.retainAll 消耗时间(数量:5000):5
    Sets.intersection消耗时间(数量:500):1
    list.retainAll 消耗时间(数量:10000):19
    Sets.intersection消耗时间(数量:1000):0
    list.retainAll 消耗时间(数量:50000):492
    Sets.intersection消耗时间(数量:5000):0
    list.retainAll 消耗时间(数量:100000):2033
    Sets.intersection消耗时间(数量:10000):0
    两个结果集不一样--------------------------
    list.retainAll 消耗时间(数量:1):0
    Sets.intersection消耗时间(数量:10):0
    list.retainAll 消耗时间(数量:10):0
    Sets.intersection消耗时间(数量:100):0
    list.retainAll 消耗时间(数量:100):0
    Sets.intersection消耗时间(数量:1000):0
    list.retainAll 消耗时间(数量:500):0
    Sets.intersection消耗时间(数量:5000):0
    list.retainAll 消耗时间(数量:1000):1
    Sets.intersection消耗时间(数量:10000):0
    list.retainAll 消耗时间(数量:5000):24
    Sets.intersection消耗时间(数量:50000):2
    list.retainAll 消耗时间(数量:10000):102
    Sets.intersection消耗时间(数量:100000):1

    Read the fucking manual and source code
  • 相关阅读:
    fpga配置方式 .jic固化为ps模式
    fpga新建nios
    四轴飞行器飞行原理与双闭环PID控制
    fpga为什么要用nios 开发
    error A space is required after ',' comma-spacing
    vuex : Newline required at end of file but not found eol-last
    vue -Missing space before value for key 'path'vue.js解决空格报错
    visual studio 自动补全功能 以及代码没有颜色
    hadoop 伪分布模式环境搭建
    django框架-DRF工程之认证功能
  • 原文地址:https://www.cnblogs.com/qxynotebook/p/9556743.html
Copyright © 2011-2022 走看看