zoukankan      html  css  js  c++  java
  • java中常用的集合的一些区别 (2013-10-07-163写的日志迁移

    List结构的集合类:

    ArrayListl类,LinkedList类,Vector类,stack类

    Map结构的集合类:

    HashMap类,Hashtable类(此是以key,value的键值对的形式存在的)

    Set结构的集合类

    HashSet类,TreeSet类

    Queue结构的集合类

    Queue接口


    集合中的一些区别:

    HashMap和Hashtable的区别

    HashMap与HashTable都是java的集合类,都可以用来存放对象,这是他们的相同点,但他们也有区别:

    一,历史原因:

    Hashtable是基于陈旧的Dictionary类的,HashMap是java 1.2 引进的Map接口的一个实现。

    二,同步性:

    Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的。

    而HashMap则是异步的,因此HashMap中的对象并不是线程安全的,因为同步的要求会影响执行的效率,

    所以如果你不需要线程安全的集合那么使用HashMap是一个很好的选择,这样可以避免由于同步带来不必要的开销

    从而提高效率。

    三.值:HashMap可以让你将空值作为一个表的条目的key或value

    但是Hashtable 是不能放入空值的(null);

    ArrayList和Vector的区别

    ArrayList与Vector都是java的集合类,都可以用来存放java对象的,这是相同点

    不同之处:

    一,同步性:

    Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的。而ArrayList则是异步的,

    因此ArrayList中的对象并不是线程安全的,因为同步的要求会影响执行效率,所以如果你不需要线程安全

    的集合那么使用ArrayList是一个很好的选择,这样可以避免由同步带来的不必要的性能开销。

    二,数据增长:

    从内部实现机制来讲ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两种类型中增加

    元素的时候,如果元素的数目超出了内部的数组目前的长度它们就需要扩展内部数组的长度,Vector缺省情况下

    自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需

    要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化

    大小来避免不必要的资源开销。

  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/jiang-xy/p/9323325.html
Copyright © 2011-2022 走看看