Java集合类简单总结(重学)
java集合类简介(重学)
一.Collection(集合)、Map接口两者应该是平行关系吧。
1.Map介绍
Map是以键值(key-value)对来存放的,2个值。通过key来找到value(例:姓名-电话,通过姓名得到电话),通过Map创建的对象key都
不可以重复。 它的两个常用子类:HashMap类和HashTable类。
HashMap类:无序存放的,key不允许重复
HashTable类:无序存放,key不允许重复
key值可通过Map的方法keyset获取全部的key值,返回是个set集合;value的值可通过Map的方法values方法获取全部value的值。然后通过Iterator去遍历。
2.Collection(集合父接口)
Collection的子接口有(常用接口)一个值:List、Set、Queue等这三个接口 List接口和Set接口是Collection的子接口
(1)List接口:
List的内容是可以重复的,即可以有相同的值。例:添加(“A”)和(“A”)都是可以的 实现的常用的类有:ArraryList类和Vector类 ArraryList类是在JDK1.2推出的,采用异步处理方式,性能高,属于非线程安全的。 Vector类是在JDK1.0推出的,采用同步处理方式,性能低,属于线程安全的。
(2)Set接口:
不可以重复内容,但是可以排序,打断放入的顺序 它的两个常用子类:HashSet类和TreeSet类 HashSet类是散列存放的,不是按存储顺序存放的(比如输入是按字母顺序的,但输出就是随机了),是随机的,肯定不能排序了;
TreeSet类是有序存放的(比如按字母顺序输出的,虽然不是按字母顺序输入的),这个可以排序了。
二.Iterator接口:
集合输出的标准操作,只要是集合就用Iterator来输出,在Collection中提供了一个方法用来得到该迭代器的对象。 注意在用迭代器输出是不能用集合的remove移除集合中元素,否则会出现异常。

Java集合类简单总结(重学)的更多相关文章
- java 集合类简单的分析1
java中的集合类是很常见的,ArrayList,HashSet,HashMap等,现在就让我们来看下他们的各个类之间的关系图. Collection ├List │├Linke ...
- java集合类简单思维导图
- Java原来还可以这么学:如何搞定面试中必考的集合类
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- 重学 Java 设计模式:实战抽象工厂模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!
- 重学 Java 设计模式:实战单例模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 5个创建型模式的最后一个 在设计模式中按照不同的处理方式共包含三大类:创建型模式.结 ...
- 重学 Java 设计模式:实战适配器模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 擦屁屁纸80%的面积都是保护手的! 工作到3年左右很大一部分程序员都想提升自己的技术 ...
- 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)
作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...
- 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 对于代码你有编程感觉吗 很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固 ...
- 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...
随机推荐
- 2016 、12 、11<本周>
翻了翻记录 想把上周没搞出来的1159和day2T2搞出来.
- LINUX测试环境部署mysql(三)
安装配置mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安 ...
- 两种设置disabled属性以及三种方法移除disabled属性
//两种方法设置disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("dis ...
- jQuery高级编程
jquery高级编程1.jquery入门2.Javascript基础3.jQuery核心技术 3.1 jQuery脚本的结构 3.2 非侵扰事JavaScript 3.3 jQuery框架的结构 3. ...
- Android之Viewpager+Fragment实现懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用.而ViewPager默认会缓存三页数据,即:Viewpager每加载一个Fra ...
- Chrome Devtools简介
Chrome开发工具(又称DevTools),是一套内嵌在chrome浏览器内部的web编写和调试工具.DevTools提供给web开发人员深入地访问浏览器内部和web应用的机会.DevTools可以 ...
- python3-day1-python简介及入门
python简介及入门 python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ...
- gcc警告: warning: dereferencing type-punned pointer will break strict-aliasing rules
Q: 在高优化级别下,不同类型指针之间的强制类型转换可能会触发以下警告: warning: dereferencing type-punned pointer will break strict-al ...
- MyBatis的动态SQL详解
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑,本文详解mybatis的动态sql,需要的朋友可以参考下 MyBatis 的一个强大的特性之一通常是它 ...
- vim中执行shell命令
1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bas ...