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)方法用来添加元素。

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

  • 相关阅读:
    android 网络 post get
    java 命名规范
    android 判断service是否开启
    android 无线连接eclipse
    eclipse jar java.lang.NoClassDefFoundError
    eclipse 默认 utf8
    timer timetask handler
    android 自定义动画按钮
    设计网站
    java 分解arraylist中单个对象 的属性名与值
  • 原文地址:https://www.cnblogs.com/sgywwy/p/8093700.html
Copyright © 2011-2022 走看看