zoukankan      html  css  js  c++  java
  • 集合相关的题,list,map,set

    一、ArrayList和Vector的区别,HashMap和Hashtable的区别:
    答:就ArrayList与Vector主要从二方面来说.
      一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
      二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
      就HashMap与HashTable主要从三方面来说。
      一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
      二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
      三.值:只有HashMap可以让你将空值作为一个表的条目的key或value。

    二、说出ArrayList,Vector, LinkedList的存储性能和特性:

    ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

    ArrayList和Vector根据索引查询速度快,但是插入和删除时候要根据顺序改变前面后者后面的值,进行内存操作,所以插入慢。还有就是Vector是支持同步的,所以性能比ArrayList差好多。

    LinkLIst插入的速度还好。

  • 相关阅读:
    PAT A1147 Heaps (30 分)——完全二叉树,层序遍历,后序遍历
    # 数字签名&数字证书
    # Doing homework again(贪心)
    # Tallest Cows(差分)
    # ACM奇淫技巧
    # 二维前缀和+差分
    # 费解的开关(二进制+递推+思维)
    # log对数Hash映射优化
    # 起床困难综合症(二进制枚举+按位求贡献)
    # 最短Hamilton路径(二进制状态压缩)
  • 原文地址:https://www.cnblogs.com/story1/p/8034373.html
Copyright © 2011-2022 走看看