一,概念

JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。

java的容器类一共有两种主要类型,Colllection和Map。

两者的区别是:Collection是单个元素,而Map是存储一个键值对

两者的子类关系如下图所示:

二,子类介绍

1,Collection的子类如下:

  • List:将以特定次序存储元素,所以取出来的顺序可能和放入的顺序不同

    • ArrayList:擅长随机访问元素,但在List中间插入,删除,移动元素较慢
    • LinkedList,插入,删除,移动元素方便,随机访问元素差
  • Set:每个值只能保存一个对象,不能包含重复的元素
    • HashSet:使用散列数
    • TreeSet:使用红黑树
    • LinkedHashSet:使用离岸边结合散列函数

2,Map的子类有以下三个

  • HashMap
  • HashTable
  • TreeMap

三,其他特征

  • List,Set,Map将所有的对象一律视为Object类型
  • Collection,List,Set,Map都是接口,不能实例化。继承自他们的ArrayList,HashTable,HashMap等是具体类,这些才能被实例化
  • 关于Clooections,值针对集合类的一个帮助类,提供一系列静态方法来实现对集合的搜索,排序,线程安全化等操作,相当于array进行类似操作的类Arrays

四,如何选择容器

  • 在各种List中,最好的是以ArrayList作为默认选择,当插入,删除频繁时,使用LinkedList().
  • 在各种Set中,HashSet通常由于HashTree(插入,查找),只是当需要排序是,才用TreeSet
  • 在各种Map中,HashMap用于快速查找
  • 当元素固定时,最好使用Array,因为Array的效率是最高的。

五,HashMap和HashTable的区别

相同点:都继承了Map接口的类

不同点:

HashMap类没有分类或者排序,她允许一个null键和多个null值

HashTable和HashMap一样,但是不允许null键和null值,他比hashMap慢,因为它是同步的

hashTable的是contains方法,而hashmap的是containskey和containsvalue方法

Map遍历

for(Map.Entry<string,string> entry:map.entrySet){

system.out.printf(entry.getValue());

}

最新文章

  1. ASP.NET Core 中文文档 第四章 MVC(2.3)格式化响应数据
  2. 浅谈JavaScript的New关键字
  3. mysql主从集群定时备份脚本
  4. 关于NGUI中的自适应和对齐机制
  5. DataGridView实现分页
  6. poj1664 (递归)
  7. 【iOS发展-81】setNeedsDisplay刷新显卡,并CADisplayLink它用来模拟计时器效果
  8. H5的新应用-在地图上标识附近加油站的地址
  9. [转帖]SSH 的 三种代理功能.
  10. (转)A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers
  11. 字符串GZIP压缩解压
  12. scrapy中 selenium(中间件) + 语言处理 +mysql
  13. Jersey RESTful WebService框架学习(二)使用@PathParam
  14. SAP函数 LAST_DAY_OF_MONTHS 获取月末最后一天日期
  15. GlusterFS实战
  16. python排序函数sort()与sorted()区别
  17. Windows 环境下分布式跨域Session共享(转)
  18. [GO]conext的使用
  19. jquery中children()
  20. Tarjan算法打包总结(求强连通分量、割点和Tarjan-LCA)

热门文章

  1. linux下c程序的链接、装载和库(2)
  2. UDS(ISO14229-2006) 汉译(No.6 应用层服务)
  3. Lind.DDD.Manage项目核心技术分享
  4. Xdebug文档(二)变量显示特性
  5. SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试(转)
  6. 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】
  7. 利用CSS3实现图片无间断轮播图的实现思路
  8. ERROR ITMS-90682: Invalid Bundle - The asset catalog at &#39;Payload/XXXXX/Assets.car&#39; can&#39;t contain 16-bit or P3 assets if the app supports iOS 9.3 or earlier.
  9. iOS切图文件的命名规范
  10. [环境搭建] VS-Visual Studio-IIS Express 支持局域网访问