zoukankan      html  css  js  c++  java
  • 6.容器

    6.容器

    1.Collection/Set/List的区别与联系

      Collection接口: 最基本的集合接口,派生了两个子接口Set和List

      Set: 无序且不可重复

      List:有序可重复

     

    2.ArrayList和LinkedList、Vector的区别

      ArrayList:基于动态数组,便于随机访问。当需要增长时,ArrayList却是原来的一半

      LinkedList:基于链表,便于新增和删除

      Vector:使用了synchronized同步方法,线程安全。当需要增长时,Vector默认增长为原来一培

     

    3.TreeSet和HashSet的区别

      TreeSet:基于二叉树实现,数据是自动排好序的,不允许放入null值

      HashSet:基于哈希表实现的,HashSet数据是无序的,只能放入一个null值

     

    4.Map中的key不能重复,重复的话,后面的key会把前面的key替换掉

     

    5.HashMap和Hashtable、ConcurrentHashMap的区别

      一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
      二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
      三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

      注:ConcurrentHashMap 是 HashMap 线程安全的实现,并且逐渐取代 Hashtable 的使用,因为 Hashtable 锁的机制是对整个对象加锁,而 ConcurrentHashMap 使用的是局部锁技术,实际上就是把 Map 分成了 N 个 Seg ment,put 和 get 的时候, 都是现根据 key.hashCode()算出放到哪个 Segment 中,而这里的每个 segment 都相当于一个小的 Hashtable,性能将高于 HashTable

     

     

    6.Collection 和 Collections的区别
      Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
      Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

     

     

     

  • 相关阅读:
    c++<ctime>中常用函数
    头文件<cmath>中常用函数
    c++动态数组的使用
    迭代器与指针
    引用和指针做形参时的区别
    c++使用cin、cout与c中使用scanf、printf进行输入输出的效率问题
    c++指定输出小数的精度
    Linux命令学习(1)
    Nginx 配置文件nginx.conf中文详解
    Walle实现自动发布
  • 原文地址:https://www.cnblogs.com/swifthua/p/7683881.html
Copyright © 2011-2022 走看看