`
ahuzl007
  • 浏览: 25720 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

处理大量数据时HashSet比ArrayList有显著性能提高

    博客分类:
  • java
 
阅读更多
package testLocal;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;

public class TestHashSet {

    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");

    private static final int LOOP_COUNT = 100000;

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
        HashSet<Integer> set = new HashSet<Integer>();
        ArrayList<Integer> list = new ArrayList<Integer>();

        for (int i = 0; i < LOOP_COUNT; i++) {
            list.add(i);
        }

        log("ArrayList start");
        for (int iList : list) {
            if (list.contains(iList)) {
                // Nothing is done.
            }
        }
        log("ArrayList end");

        for (int i = 0; i < LOOP_COUNT; i++) {
            set.add(i);
        }
        log("HashSet start");
        for (int iSet : set) {
            if (set.contains(iSet)) {
                // Nothing is done.
            }
        }
        log("HashSet end");
    }

    public static void log(final String str) {
        System.out.println(sdf.format(new Date().getTime()) + " " + str);
    }

}

 结果:

2016/03/18 13:35:52.492 ArrayList start
2016/03/18 13:36:14.634 ArrayList end
2016/03/18 13:36:14.703 HashSet start
2016/03/18 13:36:14.710 HashSet end

 

很显然HashSet比ArrayList用的时间少的多

分享到:
评论

相关推荐

    java数据批量处理

    在Java编程领域,数据批量处理是一项常见的任务,尤其在大数据、数据库操作以及系统集成等场景中,批量处理能显著提高效率并减少资源消耗。本文将深入探讨Java如何进行数据批量处理,涉及的主要知识点包括批量读取、...

    第8讲 对比Vector、ArrayList、LinkedList有何区别1

    由于链表结构,插入或删除元素时,只需要改变相邻元素的引用,而无需移动大量数据。然而,如果频繁进行随机访问,LinkedList的性能会远低于ArrayList和Vector。 在选择适合的数据结构时,需要考虑应用场景。如果...

    FastUtils10.3.3

    在这个版本中,FastUtils进一步优化了性能,提升了开发效率,成为许多Java开发者在处理大量数据时的首选工具。 首先,FastUtils的核心优势在于其对SIMD(Single Instruction Multiple Data,单指令多数据)技术的...

    java技术从入门到精通(孙鑫)学习笔记Lesson 6(数据结构).doc

    总结,理解并熟练运用LinkedList、ArrayList和HashSet等数据结构对于提高Java编程效率至关重要。根据实际需求选择合适的数据结构,可以显著优化代码性能。在实际开发中,应根据数据的操作模式(如插入、删除、查找的...

    03_ListAndSet_java_order64n_源码

    在处理大量数据时,理解数据结构的性能特性至关重要。例如,当数据量较大时,LinkedList的随机访问性能劣势可能会变得更为显著,而ArrayList的扩容策略可能会导致大量的内存分配和复制操作。 总结一下,本主题主要...

    几个常用的数据结构(1.0)

    在处理大量并发操作时,通常会用ArrayList替代Vector,以提高性能。 2. **List**:List是一个有序的集合,可以包含重复的元素。常见的List实现有ArrayList和LinkedList。ArrayList基于动态数组,适合随机访问,而...

    Java程序性能优化之二十三个建议

    12. **文件I/O优化**:Java中的FileInputStream和FileOutputStream在处理大量数据时可能存在性能问题,可以考虑使用NIO或Java 7引入的Files工具类来提高文件操作效率。 13. **数据库连接池**:对于数据库操作,使用...

    java性能优化方法

    Java性能优化是提升系统效率的关键环节,特别是在处理大量数据或者高并发场景时,优化显得尤为重要。本主题将围绕“Java性能优化方法”展开,重点讨论Java集合的排序、反射机制在Spring中的应用以及如何减少对象的...

    JavaSE数据结构专栏所有代码

    9. **查找算法**:二分查找、哈希查找等算法也会被讨论,它们在处理大量数据时能显著提高效率。 10. **哈希表**:哈希表(如Java中的HashMap)通过哈希函数快速定位数据,提供了常数时间的查找、插入和删除操作。 ...

    java performance9

    1. **大容量数据处理:** 当处理大量数据时(例如,数据量达到几百MB甚至更多),需要特别注意内存管理。使用`ArrayList`存储`Integer`对象会导致较大的内存浪费,因为每个`Integer`对象都会消耗更多的内存空间。...

    Java编程中“为了性能”需做的26件事

    1. **选择正确的数据结构**:使用适合场景的数据结构(如ArrayList、HashSet、HashMap)可以显著提高程序效率。 2. **避免过度的对象创建**:频繁创建对象会增加垃圾收集的负担,考虑复用对象或使用对象池。 3. **...

    数据储存结构集合

    数据存储结构是计算机科学中的一个重要概念,用于组织和管理...总结而言,不同的数据存储结构各有优缺点,选择合适的数据结构可以显著提高程序的性能。在实际应用中,开发者需要根据具体需求来选择最适合的数据结构。

    Java集合类矩阵图

    例如,在处理大量数据时,如果需要快速查找,HashMap可能是最佳选择;而如果关心元素的顺序,LinkedList或ArrayList则更为合适。同时,根据应用场景选择适当的数据结构,可以显著提高程序运行效率。

    java数据结构和算法

    此外,Java 8引入了流(Stream)API,这为处理大量数据提供了新的途径,其支持串行和并行操作,可以方便地进行过滤、映射、归约等操作,是函数式编程思想在Java中的体现。 在实际开发中,理解和运用数据结构和算法...

    C# 各种通用类集合

    在处理大量数据时,选择正确的集合类可以显著提高程序的性能。 总结来说,C#的通用类集合为开发者提供了丰富的数据结构选择,可以根据实际需求选择最适合的集合类型。理解每种集合的特点和用途,是提升C#编程能力的...

    提升java代码运行效率的条铁律.docx

    通过遵循这些铁律,开发者可以逐步改善Java代码的运行效率,使得程序在处理大量数据或复杂逻辑时表现得更加高效。然而,优化时也要注意不要过早优化,应根据实际情况和性能测试结果来决定优化策略。

    35-JAVA类集应用

    但是插入和删除元素的操作相对较慢,尤其是当操作发生在数组中间或开头时,因为需要移动大量元素。因此,ArrayList 适用于频繁查找但不频繁增删的场景。 其次,LinkedList 是一个双向链表,它在插入和删除元素时...

Global site tag (gtag.js) - Google Analytics