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
  • 相关阅读:
    深入浅出WPF-04.x名称空间详解
    深入浅出WPF-03.XAML语法
    深入浅出WPF-02.WPF系列目录
    深入浅出WPF-01.WPF缘起
    IdentityServer4[3]:使用客户端认证控制API访问(客户端授权模式)
    IdentityServer4[2]:启动一个新的IdentityServer项目
    基于UDP实现多媒体即时通信机制
    顺丰快递单号查询api接口快递鸟免费对接参数demo
    常用电子面单接口API demo下载(菜鸟&快递鸟)
    Solution -「YunoOI 2016」镜中的昆虫
  • 原文地址:https://www.cnblogs.com/qxynotebook/p/9556743.html
Copyright © 2011-2022 走看看