----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 
一、关于java中的集合类
       首先看一下,大致的框架流程图
      
通过这些我们可以看出来,通常我们经常采用的vector、arraylist、hashset,treeset,hashmap,hashtable,treemap、linkedlist类
关于vector和arraylist对比,vector是线程安全的,vector通过遍历,性能更高。

ArrayList和Vector功能类似,

Vector从Java 1.0起就存在,ArrayList从Java 1.2起才存在,较新。

所以Vector在JavaME、Card等各种微小版本都可以使用,而ArrayList不能

ArrayList不具备线程同步的安全性,但速度较快。

Vector具备线程安全。

而对于hashmap和hashtable

Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。
  
  也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),而且同步增加了很多处理费用。
  
  第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。
  
  一些资料建议,当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。
二、对于java集合框架

他们之间的比较:

    是否有序 是否允许元素重复
Collection
List
Set AbstractSet
  HashSet
  TreeSet 是(用二叉排序树)
Map AbstractMap 使用key-value来映射和存储数据,key必须唯一,value可以重复
  HashMap
  TreeMap 是(用二叉排序树)

  

黑马程序员——JAVA基础——集合相关推荐

  1. 黑马程序员--java基础--集合(三)

    -------android培训.java培训.期待与您交流! ---------- 第八部分:Collections工具类 Collections是集合框架的工具类,里面存在能对List集合容器操作 ...

  2. 黑马 程序员——Java基础---IO(下)

    黑马程序员--Java基础---IO(下) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供 ...

  3. 黑马 程序员——Java基础---流程控制

    黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...

  4. 黑马程序员----------------java基础-----------------Map集合

     ------- <a href="http://www.itheima.com" target="blank">android培训</a ...

  5. 黑马程序员--Java基础加强篇

    开发工具使用 --------------------------------------------------------------------------------------------- ...

  6. 黑马程序员-Java基础:面向对象(上)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.面向对象概述 当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高.可随着需求的 ...

  7. 黑马程序员---Java 容器集合

    -----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 集合: 1.map 映射表的基本思想是它维护的是键-值(对)关联,因此程序员可以 ...

  8. 黑马程序员-Java基础知识预备之Java流程控制与数组

    -------- android培训.java培训.期待与您交流!---------- 本博文涉及的主要内容如下: if语句 switch语句 循环结构 循环结构的控制 数组类型 数组在内存中的运行机 ...

  9. 黑马程序员—java基础总结1

    ------- android培训.java培训.期待与您交流! ---------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用 ...

最新文章

  1. vue.js循环for(列表渲染)详解
  2. LeetCode 965 Univalued Binary Tree--判断二叉树的所有节点的值是否相同--python,java解法
  3. 数据蒋堂 | 为什么我们需要C程序员
  4. 《剑指offer》数组中出现次数超过一半的数字
  5. 02-15 GUCCI 我喜欢的
  6. shiro框架---关于多项目之间验证为什么需要共享session
  7. 价值1000毕业设计校园信息发布平台网站源码
  8. WIN7网络共享打印机设置 家庭工作组
  9. Java 基础系列之volatile变量(一)
  10. 在vmplayer上扩展ubantu系统的硬盘大小,并进入ubantu进行更改
  11. 博弈论总结 四大博弈模型 SG函数
  12. pe卸载win10更新补丁_禁用Win10系统更新
  13. 中国存储国家队豪言:2020 年追上世界级大厂
  14. 【Hack The Box】linux练习-- Blunder
  15. [随笔]魏晋风度与竹林七贤系列之二 嵇康任气有侠名
  16. vue计算属性与监视属性
  17. 计算机四级 信息安全工程师——操作系统题库
  18. 面向对象三大特性-多态
  19. 计算机网络安全专业论文题目,系统类有关计算机专业论文题目,关于计算机网络安全漏洞防范措施相关毕业论文格式...
  20. 8支团队正在努力构建下一代区块链以太坊Ethereum 2.0

热门文章

  1. clone.weekday is not a function
  2. Browserslist: caniuse-lite is outdated. Please run:npx browserslist@latest --update-db
  3. 《Java程序设计》第二次实验报告
  4. 如何管理信息:P.A.R.A. 是什么及在 Notion中的应用
  5. uni-app项目订单支付
  6. Experimental photonic quantum memristor【硬翻译】
  7. 《Java开发手册》学习总结
  8. 第五章第三十一题(金融应用:计算CD价值)(Financial application: compute CD value)
  9. iBATIS框架理论学习篇(公司内部培训文档)
  10. HW1_ML---Data Wrangling with pandas