`
iceside
  • 浏览: 14145 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java的集合比较

    博客分类:
  • java
阅读更多

 

 

  • ArrayList的内部实现是采用数组形式,新建ArrayList对象时将初始化固定大小的数组。每次向ArrayList插入对象时会检查是否需要扩充数组大小,如果需要扩充那么ArrayList中存储的对象将全部拷贝到新的内存地址中。因此ArrayList具有数组访问速度快的特点(直接根据引用计算内存地址),但在频繁插入或删除对象时由于需要保证内存地址的连续,需要拷贝移动对象,效率明显比链表慢。
  • VectorArrayList内部机制基本相同,但Vector是线程安全的,效率上稍微差一些。
  • LinkedList的内部实现是采用双向链表,插入或删除较快,但由于访问任何对象时都需要遍历链表,访问速度上比较慢。
  • HashMap采用数组和单向链表来实现数据存储;
  • HashSet针对两个逻辑相等的对象只存储一次,这个相等是通过equals(Object)hashCode来比较的。
  • HashTableHashMap实现基本一致,但HashTable是线程安全的。

 

        ArrayList.contains(T)是通过Tequals(Object)方法进行判断。HashMap.containsKey(Key)是通过KeyhashCode()equals()判断,HashSet.contains(Object)间接调用HashMap.containsKey(key),也是采用hashCodeequals来进行判断,HashSet.equals(Obj)要求集合内元素的hashCode()equals()必须全部相等。

Java.lang.Object提供方法hashCode的缺省实现,返回一个基于内存地址的唯一的数字。

在实现hashCode方法时一般采用质数,这样在进行hash code%hash table length求余时可以得到较好的分布。在HashMap中哈希表初始长度为16,都是2的幂。

 

Java API关于Objectequals方法部分,详细定义了两个对象之间相等的关系:

  • 自反性:x.equals(x)
  • 对称性:x.equals(y)当且仅当y.equals(x)
  • 传递性:x.equals(y)y.equals(z),则x.equals(z)
  • 一致性:给定一至的状态,x.equals(y)返回一致的结果。
  • 可以与null比较:x.equals(null)

 

分享到:
评论

相关推荐

    java集合思维导图

    Java集合框架还包含了一些工具类,如`Collections`(提供对集合的静态方法)、`Iterator`(遍历集合元素)、`Comparator`(用于比较对象)等。这些工具极大地提高了代码的可读性和效率。 在实际应用中,选择合适的...

    java 集合练习题

    在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析: 1. **集合框架简介**: Java集合框架是Java API的一部分,它...

    java 集合

    本文将深入探讨Java集合框架的基础知识,包括接口、类、以及它们在实际开发中的应用。 首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据...

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

    Java集合框架还包含了一些工具类,如`Collections`(提供了对集合的各种操作,如排序、填充和反转)、`Comparator`(用于自定义元素比较逻辑)和`Iterator`(遍历集合元素的接口)。 至于集合排序,Java提供了两种...

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是如何实现的, 以及他们的实现原理...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    Java集合排序及java集合类详解

    Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java...

    Java集合思维导图.xmind.zip

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组高效的数据结构和算法,使得开发者可以方便地存储和管理对象。这份"Java集合思维导图.xmind.zip"压缩包文件,显然旨在帮助学习者深入理解Java集合框架的...

    Java集合框架总结

    ### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...

    java 集合部分笔记

    【Java集合】 Java集合框架是Java编程语言中用于存储和操作对象的工具,它提供了多种数据结构,如列表、集、映射等,以适应不同的数据处理需求。集合类通常位于`java.util`包下,是Java程序员必备的知识点。 1. **...

    Java集合整体讲解

    Java集合整体讲解,其中包含了Collection,Map,Iterator和一些工具类,以及集合整体大框架

    【Java】Java集合框架思维导图。

    xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...

    java集合框架的使用。集合的运算

    Java集合框架是Java编程语言中一个非常重要的组成部分,它为开发者提供了存储和操作对象的统一接口和类。这个框架使得处理各种数据结构变得更加方便和高效。在这个“java集合框架的使用”主题中,我们将深入探讨如何...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    Java基础篇:Java集合.pdf

    该文档主要详细总结了Java集合的相关知识,包括Collection和Map接口、Collection接口的子接口List和Set接口以及具体的实现类、存储原理等;Map接口的子接口HashMap、LinkedHashMap、TreeMap、Properties等

    java集合知识大全

    ### Java集合知识大全 #### 一、集合概述 在Java编程语言中,集合是一组用于存储其他对象的对象。集合框架提供了多种数据结构,用于管理不同类型的数据。这些数据结构包括列表(List)、集(Set)、映射(Map)等,每种...

    一个讲解很清晰的Java集合框架PPT

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...

Global site tag (gtag.js) - Google Analytics