`

List与Map详细比较

 
阅读更多

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.)。

分享到:
评论

相关推荐

    List转换为List

    本知识点重点讲解将List转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List转换为List&lt;Map&gt; 在Java中,Bean...

    ResultSet 转为listmap

    ResultSet 转为 List&lt;Map&gt; ResultSet 转为 List&lt;Map&gt; 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用...

    js模拟list和map

    javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 &lt;br&gt;List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...

    在Java 8中将List转换为Map对象方法

    本文将详细介绍在Java 8中将List转换为Map对象的方法,并提供了多种实现方式。 首先,我们需要明确Map的key是什么?在这个例子中,我们使用员工对象的empId作为key,值是员工姓名。我们可以使用Java 8中的Streams ...

    Map拆分List拆分

    Map拆分与List拆分涉及到数据的分布式处理,这通常在Hadoop、Spark等大数据处理框架中常见。下面我们将详细探讨这两个概念及其在实际应用中的重要性。 首先,Map是一种键值对存储的数据结构,其中每个键(Key)都是...

    嵌套Map或者List获取key、value值

    本篇将详细介绍如何在嵌套的Map和List中获取key和value值。 首先,让我们理解什么是嵌套的Map。一个Map是一个键值对的集合,其中每个键都是唯一的,并且关联着一个值。当一个Map的值本身又是一个Map时,我们就说这...

    FreeMarker 遍历list

    在FreeMarker中,遍历`List&lt;Map&lt;String&gt;&gt;`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...

    jdk1.8list转map的测试类

    list转map的测试类,用到jdk1.8的新特性,感觉用起来很方便

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并

    java字符串与集合互相转换,字符串转List,Map,List转String,String转List源码

    List集合转换成String,String转List,Map转String,String转Map等 集合与字符串相互转换,可以自己扩展源码,带有注释

    将list转换成JavaBean

    将list&lt;Map&gt;转换成JavaBean的工具类

    jQuery的Ajax实现异步传输List、Map

    在与服务器进行数据交互时,我们将List和Map转换为JSON格式,以便于传输。 要实现jQuery的Ajax调用,我们需要使用`$.ajax()`函数。这个函数提供了一种灵活的方式,可以配置请求的所有方面,包括URL、数据类型、请求...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    本篇文章将详细介绍如何将Map和List集合转换为XML字符串,以及如何将XML字符串反向转换回Map和List集合。 首先,让我们探讨`Map`集合转成XML字符串的过程。一个`Map`对象存储键值对,可以使用各种库如`JAXB (Java ...

    java转换xml、list、map和json

    "java转换xml、list、map和json" 本文主要讲述了Java中将xml、list、map和json之间的转换的相关知识点。 xml和map之间的转换 在Java中,xml和map之间的转换可以通过使用dom4j库来实现。dom4j是一个Java开源库,...

    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对象...

    map转化为list

    标题中的“map转化为list”指的是在编程中,我们经常需要将Map对象的键值对转换成List对象,以便于进一步处理或展示数据。这个过程通常涉及到Java集合框架中的转换操作,尤其是在处理数据结构时。 在Java中,Map是...

    List&lt;map&gt;多字段组合排序

    List&lt;map&gt;,List&lt;Map, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

    本文将深入探讨如何使用这些技术来发布Web服务,特别是涉及复杂对象如List、Map及List&lt;Map&gt;的传递。 首先,Spring框架是一个Java企业级应用开发的强大工具,它提供了众多模块,包括Spring MVC用于Web开发。在Spring...

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

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

Global site tag (gtag.js) - Google Analytics