Java的容器类Collection和Map
2024-10-14 08:41:46
一,概念
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());
}
最新文章
- ASP.NET Core 中文文档 第四章 MVC(2.3)格式化响应数据
- 浅谈JavaScript的New关键字
- mysql主从集群定时备份脚本
- 关于NGUI中的自适应和对齐机制
- DataGridView实现分页
- poj1664 (递归)
- 【iOS发展-81】setNeedsDisplay刷新显卡,并CADisplayLink它用来模拟计时器效果
- H5的新应用-在地图上标识附近加油站的地址
- [转帖]SSH 的 三种代理功能.
- (转)A curated list of Artificial Intelligence (AI) courses, books, video lectures and papers
- 字符串GZIP压缩解压
- scrapy中 selenium(中间件) + 语言处理 +mysql
- Jersey RESTful WebService框架学习(二)使用@PathParam
- SAP函数 LAST_DAY_OF_MONTHS 获取月末最后一天日期
- GlusterFS实战
- python排序函数sort()与sorted()区别
- Windows 环境下分布式跨域Session共享(转)
- [GO]conext的使用
- jquery中children()
- Tarjan算法打包总结(求强连通分量、割点和Tarjan-LCA)
热门文章
- linux下c程序的链接、装载和库(2)
- UDS(ISO14229-2006) 汉译(No.6 应用层服务)
- Lind.DDD.Manage项目核心技术分享
- Xdebug文档(二)变量显示特性
- SQL Server 2012提供的OFFSET/FETCH NEXT与Row_Number()对比测试(转)
- 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】
- 利用CSS3实现图片无间断轮播图的实现思路
- 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.
- iOS切图文件的命名规范
- [环境搭建] VS-Visual Studio-IIS Express 支持局域网访问