zoukankan      html  css  js  c++  java
  • 常用集合的对比

    ArrayList/LinkedList/Vector

    •   ArrayList 是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组.
    •   LinkedList 是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.
    •   Vector 和ArrayList类似,但属于强同步类。如果你的程序本身是线程安全的(thread-safe,没有在多个线程之间共享同一个集合/对象),那么使用ArrayList是更好的选择。Vector和ArrayList在更多元素添加进来时会请求更大的空间。
    •   Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.
    •   而LinkedList 还实现了Queue 接口,该接口比List提供了更多的方法,包括 offer(),peek(),poll()等.

    HashMap/HashTable

    • HashTable是Dictionary的子类,HashMap是Map接口的一个实现类; HashTable的方法是同步的,而HashMap中的方法在缺省情况下是非同步的;
    • 在HashMap中,null可以作为键值,但只能有一个。

    HashMap和HashSet的关系

    •   HashSet实现了Set接口,他不允许集合中有重复的值。在将对象存入HashSet之前,先要重写确保对象重写equals()和hashCode()方法,如果没有重写这个方法,将会默认实现。HashSet使用public boolean add(Object o)方法用来在Set中添加元素,当元素值重复时则会立即返回false,如果成功添加的话会返回true。
    •   HashMap实现了Map接口,Map接口对键值对进行映射。Map中不允许重复的键。HashMap使用public Object put(Object Key,Object value)方法用来添加元素。

    以上就是我对常用集合的简单理解,如有不对,请及时指正。

  • 相关阅读:
    C#反射的使用
    Swagger实例分享(VS+WebApi+Swashbuckle)
    WCF全双工通信实例分享(wsDualHttpBinding、netTcpBinding两种实现方式)
    WCF通信简单学习实例
    netcore 实现跨应用的分布式session
    netcore mvc 的简单实现
    netcore 基于 DispatchProxy 实现一个简单Rpc远程调用
    一步步到IOC
    《JavaScript设计模式与开发实践》读书笔记-基础知识
    windows下docker与.net core 的简单示例
  • 原文地址:https://www.cnblogs.com/sgywwy/p/8093700.html
Copyright © 2011-2022 走看看