`
jiahh
  • 浏览: 38610 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java 中Collection 比较

阅读更多
   public class ListTest {
    private static Random random = new Random();
    public static void main(String[] args){
        ArrayList<String> arraylist = new ArrayList();
        LinkedList<String> linkedlist = new LinkedList();
        HashMap<String,Object> map = new HashMap();
        HashSet<String> set = new HashSet();
        for(int i=0;i<50000;i++){
            String r = randomString();
            arraylist.add(r);
            linkedlist.add(r);
            map.put(r, r);
            set.add(r);
        }
       
        System.out.println("arraylist size "+arraylist.size());
        System.out.println("linkedlist size "+linkedlist.size());
        System.out.println("map size "+map.size());
        System.out.println("set size "+set.size());
       
       
        System.out.println("------");
        long begin = System.currentTimeMillis();
        for(int j=0;j<arraylist.size();j++){
            arraylist.contains(arraylist.get(j));
        }
        System.out.println("arraylist time "+(System.currentTimeMillis()-begin));
       
       
        begin = System.currentTimeMillis();
        for(int j=0;j<arraylist.size();j++){
            linkedlist.contains(arraylist.get(j));
        }
        System.out.println("linkedlist time "+(System.currentTimeMillis()-begin));
       
        begin = System.currentTimeMillis();
        for(int i=0;i<100;i++){
            for(int j=0;j<arraylist.size();j++){
                map.containsKey(arraylist.get(j));
            }
        }
        System.out.println("map time "+(System.currentTimeMillis()-begin));
       
        begin = System.currentTimeMillis();
        for(int i=0;i<100;i++){
            for(int j=0;j<arraylist.size();j++){
                set.contains(arraylist.get(j));
            }
        }
        System.out.println("set time "+(System.currentTimeMillis()-begin));
       
    }
    protected static String randomString() {
        return Long.toString(random.nextLong(), 36);
    }
}
在我的机器上,结果如下:
arraylist size 50000
linkedlist size 50000
map size 50000
set size 50000
------
arraylist time 49328
linkedlist time 57641
map time 625
set time 578


可见呀,如果是在集合中查询某个对象是否存在,是HashSet的速度最快,而且比List快将近1万倍。
分享到:
评论

相关推荐

    java collection framework

    ### Java Collection Framework 相关知识点 #### 一、引言 在 Java 领域,《Java Collection Framework》这本书被广泛认为是一本优秀的教程,尤其适合初学者了解集合框架的前世今生。通过本书的学习,读者不仅能...

    java中collection集合

    java中collection集合

    java中Collection深入剖析

    在Java编程语言中,`Collection`是所有集合框架的基础接口,它是`List`、`Set`和`Queue`等具体集合类型的父接口。本篇文章将深入剖析Java中的`Collection`框架,探讨其核心概念、主要接口及其实现类,以及在实际开发...

    8.javaCollection接口.zip

    8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.javaCollection接口.zip8.java...

    关于Java_Collection_API_

    在Java的Collection框架中,集合类被划分为两大类:线程安全集合类与非线程安全集合类。早期版本的集合类(如`Vector`和`Hashtable`)通过`synchronized`关键字实现线程安全,但在单线程环境下这种同步机制会显著...

    Java集合Collection、List、Set、Map使用详解

    本文将深入解析Java集合中的Collection、List、Set和Map,包括它们的使用方法、实现原理以及如何进行排序。 ### 集合框架概述 1.1.1 容器简介 容器是Java集合框架的基础,它是一个可以存储多个对象的容器,提供了...

    java集合框架之Collection实例解析

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储和操作提供了丰富的接口和类。本篇文章将深入解析`Collection`接口及其主要实现类`List`和`Set`,帮助你理解并熟练运用这些核心概念。 首先,`...

    java Collection类整理

    Java集合框架中的`Collection`接口是所有单值容器的基础接口,它定义了基本的增删查改元素的方法。`Collection`有两个主要的子接口:`List`和`Set`。`List`接口要求元素保持特定的顺序,并允许重复元素;而`Set`接口...

    java泛型集合 java集合 集合 java Collection

    本文将深入探讨这两个主题,并着重讲解`Collection`接口及其在Java中的应用。 首先,Java泛型是一种在编译时提供类型安全性的机制,它允许我们在创建集合时指定元素的类型。这样可以防止在运行时出现...

    java collection

    Java集合框架是Java编程语言中一个非常核心的部分,它提供了数据结构和算法的实现,使得开发者可以方便地存储和管理对象。在这个学习笔记中,我们将深入探讨ArrayList、HashMap、LinkedList和HashSet这四个重要的...

    Java中的Collection

    Java中的Collection框架是Java开发中不可或缺的部分,它提供了一组高效、灵活的数据结构,使得开发者可以方便地管理和操作数据。Collection接口是整个框架的基础,它定义了一组操作元素的基本操作,如添加、删除和...

    java集合Collection总结

    以上只是Java集合框架中Collection接口及其相关子接口和实现类的基础知识。在实际开发中,我们需要根据具体需求选择合适的集合类型,合理利用其特性,优化代码性能。通过实例练习,可以更好地理解和掌握这些概念。...

    WP-Understanding Java Garbage Collection

    WP-Understanding Java Garbage Collection

    Java_Collection_A

    Java_Collection_A Java_Collection_A

    Java.util.Collection类的学习.pdf

    Java.util.Collection类是Java编程语言中的一个基础类库,提供了许多有用的方法来操作集合对象。Collection类包含了许多静态方法,可以对集合进行排序、混排、反转、替换等操作。 1. Overview Java.util....

    Understanding_Java_Garbage_Collection_v4.pdf

    本文档是一份详细探讨Java垃圾回收机制及其影响的白皮书,标题为《Understanding Java Garbage Collection v4.pdf》,旨在帮助Java开发者和架构师理解垃圾回收器的应用行为、特性和机制,并在Java平台上选择和调整...

    JAVA_Collection框架

    Java Collection框架 是 Java 核心库中一个重要的组成部分,它为集合类提供了一种通用的接口、实现以及算法。在 Java 开发过程中,我们经常会遇到需要处理一组对象的情况,这些对象可能是用户输入的数据、数据库查询...

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    Java集合排序及java集合类详解(Collection、List、Map、Set).doc

    JAVA COLLECTION (APress)

    《JAVA COLLECTION》是一本专注于Java集合框架的书籍,由APress出版社出版。这本书深入浅出地探讨了Java API中的各种数据结构,是学习和理解Java集合框架的理想资源。作者通过简洁明了的语言,使得初学者也能轻松...

    Java之Collection总结

    ### Java之Collection总结 #### 一、集合简介与遍历方式 ##### 1. 集合的作用与定义 集合是一种特殊的数据结构,主要用于存储和管理对象。在Java中,集合是一个容器对象,用于存储一系列对象的引用。集合提供了一...

Global site tag (gtag.js) - Google Analytics