`

Map 和 List 的性能比较

    博客分类:
  • Java
阅读更多

1.Collection接口与Map的总体框架图

Collection  
├List  
│├LinkedList  
│├ArrayList  
│└Vector  
│ └Stack  
└Set  
Map  
├Hashtable  
├HashMap  
└WeakHashMap  

由上图可以看出:List和Set都源自Collection,而Map自成体系;

2.HashMap,ArrayList与HashTable,Vector的区别联系

    HashMap,ArrayList是异步执行的这样有助于提高工作效率,但并不是线程安全的.并且HashMap允许键值对的值为null;

    HashTable和Vector是同步执行的,但是线程安全,这样的效率不如HashMap和ArrayList

3.List集合性能比较:

    ArrayList是首选,在多用于查询使用时,ArrayList的效率更高;但在频繁进行删除,插入操作的时候应该用LinkedList,比如在进行堆栈和队列的操作时,就应该用LinkedList执行,此时的执行效率比JAVA自带的stack要高

4.Map集合性能比较:

    HashMap是首选,但是在整个Map类会需要更多的内存空间,以为有键值对的存在.HashMap用到了哈希函数,所以其key必须是唯一的,TreeMap是用红黑树进行实现的;Map还可用containKey()检查是否含量有某个key/value键值对

   

5.List集合的输出

    在Java里不建议循环执行Object obj =(Object)list.get(i); 这样的效率非常低

    建议使用Iterator迭代器的形式

                       Iterator ite = list.iterator();

                       while(ite.hasnext())

                           {

                                    Object obj = ite.next();

                           }

                                       

6.Collection与Collections的区别

      Collection是集合的接口类,而Collections是一个帮助类,提供了一些帮助函数,如搜索,反转等等

7.Vector向量:与ArrayList相似,多用于多线程,但是线程同步,用Iterator迭代输出时输捕获修改更新的异常

 向量的功能:

  1.能存储任意对象

  2.不能存储基本类型的数据,如39,除非将这些数据包裹在包裹类中

  3.其容量可以按需求自动扩充

  4.若果不用扩充容量,增加元素方法的效率较高

  方式:

  Vector myVector=new Vector()  //初始容量为10

  Vector myVector=new Vector(int cap)  // 初始容量为cap

  Vector myVector=new Vector(Collection col) //使用集合col的元素初始化,若果col为数组,需要先将数组转换成为List对象

  例:Vector myVector=new Vector(Arrays.asList(col));

  void add(Object obj)   //将给定的参数对象加入到Vector的原有元素的最后

  boolean addAll(Colletion col)  //将集合类对象中的所有元素加入到此方法的接收者对象中,如果接收者的结果有变化,则返回true

  int size()  //返回元素的个数

  boolean isEmpty()  //判断Vector是否为空

  Object get(int pos)   //返回指定位置的元素

  void set(int pos,Object obj)  //用obj替换Vector中位置为pos的对象

  boolean remove(Object obj)   //删除第一次找到的obj对象,返回true.找不到则返回false

  Objectremove(int pos)     //去除给定位置的元素,并返回被去除的对象

  boolean removeAll(Collection col)    //删除Vector中所有在col出现的对象,如果接收者的结果有变化,则返回true

  void clear()  //删除vector的所有元素

  boolean contain(Object obj)   //判断Vector是否包含obj

  boolean containAll(Collection col)  //判断Vector是否包含col中的所有元素

  int indexOf(Object obj)     //返回obj在Vector第一次出现的位置,如果找不到则返回-1

  Enumeration elements()     //返回Vector中所有元素的Enumeration对象,注意此方法不能用于ArrayList

  Iterator iterator()    //返回Vector中所有元素的Iterator对象

  特别注意:Object get(int pos)  //读取位置为pos的元素,因其返回的是Object对象,所以需要对其进行塑性(显式转换)

  例:

  for(int i=0;i<v.size();i++)

  Custmer c=(Custmer)v.get(i);      //每次从v读出的对象都需要进行显式转换才可以正确使用

8.Vector与ArrayList比较:

               a:Vectors是可同步化的,Vector的内容的方法都是线程安全 的;

               b:Vector在默认情况下是产生一个双倍大小,而ArrayList增加50%的大小;

               c:Vector确实有一点点优势,因为你可以指定增加值(译者按,如果没有猜错的话,作者说的方法应该是 setSize(int newSize) Sets the size of this vector.)。

分享到:
评论

相关推荐

    Map拆分List拆分

    在大数据处理领域,高效的数据操作是关键,而Map和List作为两种常见的数据结构,它们的拆分技巧在处理大规模数据时显得尤为重要。Map拆分与List拆分涉及到数据的分布式处理,这通常在Hadoop、Spark等大数据处理框架...

    json字符串转成 Map/List

    List&lt;Map, Object&gt;&gt; list = gson.fromJson(jsonString, new TypeToken&lt;List&lt;Map, Object&gt;&gt;&gt;(){}.getType()); ``` 2. Jackson库: Jackson是另一个流行的JSON处理库,提供了`ObjectMapper`类来实现JSON与Java对象...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**: - **实现方式**:TreeMap基于红黑树(Red-Black Tree)实现,这是一种自平衡的二叉查找树。 - **时间复杂度**:插入和查找的...

    易语言仿java集合 list map源码

    7. 性能优化:比较易语言实现的List和Map与Java原生实现的性能差异,了解如何优化数据结构和算法。 深入研究这些源码,不仅可以帮助你理解易语言的面向对象编程,还可以加深对Java集合框架的理解,同时也能锻炼你的...

    Gson解析(List和Map)格式json数据 - CSDN博客1

    在处理JSON数据时,我们经常遇到两种常见的数据结构:列表(List)和映射(Map)。本文将详细讲解如何使用Gson解析这两种格式的JSON数据。 ### 1. 解析List格式的JSON数据 在Java中,我们通常使用`List`接口来存储...

    list转map,list转tree,减少数据库查询次数

    标题中的“list转map”和“list转tree”是两种常见的数据结构转换操作,它们...理解和熟练运用这些技巧,对于提升软件性能和用户体验至关重要。在实践中,应结合具体业务场景和现有技术栈,选择最适合的方法进行优化。

    List接口和Map接口

    ### List接口和Map接口详解 #### 一、Java集合框架概览 Java集合框架是Java标准库的一个核心组成部分,用于处理各种数据结构如列表、集合和映射等。该框架提供了一组统一的接口和实现,使开发人员能够高效地管理和...

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    ArrayList和Vector都是实现了List接口的,但是ArrayList的性能比Vector好。 接下来,我们来看Map和HashMap的区别。Map是一个接口,而HashMap是一个实现了Map接口的具体类。Map提供了key到value的映射,一个Map中不...

    集合概述set、List、Map

    ### 集合概述:set、List、Map #### 一、集合框架概述 ##### 1.1.1 容器简介 在Java编程中,集合框架是一个非常重要的概念,它提供了一种灵活的方式来存储、操作和管理不同类型的对象集合。集合框架的主要目标是...

    List<Map<String, List>> data保存到SharedPreference和读取

    首先,我们需要创建一个工具类,用于序列化和反序列化`List&lt;Map, List&lt;String&gt;&gt;&gt;`。通常我们可以使用`Gson`库来实现这个功能,因为它提供了方便的JSON转换方法。如果你的项目中还没有引入Gson库,可以在build.gradle...

    ajax和json跟java实现List、Map直接传递

    Java作为后端服务器语言,常与它们配合处理数据,尤其是当涉及到List和Map这类集合数据结构时。这篇博客将深入探讨如何使用Ajax和JSON来实现与Java服务端之间List和Map的直接传递。 首先,Ajax的核心在于...

    list map相关用法实例-流氓版

    在Java编程语言中,`List`、`Map`是两种非常重要的数据结构,它们在处理序列数据和键值对数据时发挥着关键作用。这里我们将深入探讨`ArrayList`、`Vector`、`HashMap`和`Hashtable`这四种数据结构的用法以及多种遍历...

    java基础-list_map_等等的基本概念

    HashMap是最常用的Map实现,它提供了快速的查找性能,而TreeMap则按照键的自然顺序或自定义比较器排序键。使用Map时,我们通常用`put(key, value)`来添加键值对,`get(key)`来获取对应的值: ```java Map, Integer&gt;...

    java对象List,Map转json格式

    本篇文章将深入探讨如何将Java中的List和Map对象转化为JSON格式,并涉及与AJAX交互的相关知识。 1. **Java JSON库**: 在Java中,我们可以使用多种库来实现对象到JSON的转换,如Jackson、Gson、Fastjson等。这里以...

    java中list、set和map 的区别

    ### Java中List、Set和Map的区别 在Java编程语言中,`List`、`Set`和`Map`是集合框架中的三个核心接口,它们分别代表了不同类型的集合数据结构,各自有着独特的特性和应用场景。 #### List `List`接口是最常用的...

    Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.

    在Java中,主要有两种类型的容器:List和Map。List是有序的集合,而Map则是键值对的存储结构。 1. List接口与ArrayList类 List是一个接口,它是Collection接口的一个子接口,规定了元素的顺序和位置。ArrayList是...

    set,list,map区别与联系

    在Java编程语言中,`set`、`list`和`map`是非常重要的数据结构,它们分别代表了不同的集合类型,各自有着独特的特性与用途。 - **List**:有序集合,可以包含重复元素。 - **Set**:不允许重复元素的集合,不保证...

    java中三种集合set、map、list的区别与联系

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中最常用的是`Set`、`Map`和`List`。这三种集合类型各自具有独特的特性和用途,理解它们之间的区别与联系对于有效地使用Java进行数据管理至关重要...

    List和Set使用retainAll方法的比较

    在Java编程语言中,集合(Collections)是存储和操作对象的主要数据结构,其中包括两种常见的类型:List和Set。本文将深入探讨List和Set在使用`retainAll`方法时的效率差异,并通过`ListAndRetainAll.java`和`...

    Collection、Map、List、Set、Iterator

    ### Collection、Map、List、Set、...以上就是关于 `Collection`、`Map`、`List`、`Set` 和 `Iterator` 的详细解析,这些概念和类是 Java 编程中非常基础且重要的部分,掌握它们有助于更好地理解和使用 Java 集合框架。

Global site tag (gtag.js) - Google Analytics