java篇 之 集合
集合 链接:https://blog.csdn.net/weixin_42504145/article/details/83119088
数组:
java的数组既可以存储基本数据类型,也可以存储引用数据类型,它本身也是一种引用数据类型。(且存放的类型必须一致)
集合:
- 存放其它对象的对象,且只能是对象(即引用数据类型) 由数组的缺点引出集合(长度 不可变且连续)
- 所有Java集合类都位于java.util包中
为单值(单个值)
.
为双值(键值对)
Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含一对键对象和值对象。向Map集合中加入元素时,必须提供一对键对象和值对象,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。Map集合中的键对象不允许重复,如以相同的键对象加入多个值对象,第一次加入的值对象将被覆盖
Map:
键不可以重复,键确定,值确定(值可以重复)
Put(key,value):插入:相同的key会被最新的替换,值重复没关系,key允许为null或者值为null
get(key):获取key对应的值
Map接口中定义了Entry接口
为什么Set、List集合可以调用iterator方法,然后使用迭代器进行遍历,而Map集合不能使用迭代器遍历?
因为Set、List集合都继承了Collection接口,而Collection接口又继承了Iterable接口,Iterable接口中提供了iterator方法,该方法可以返回一个迭代器,用来遍历集合。Map集合则没有继承该接口。
Java中集合主要分为三种类型:
. Set : 无序,并且没有重复对象。不支持null(写实例时要先完善hashcode 和equals,是根据这个去重!)
. List: 有序(放入的先后的次序), 可重复。允许null值
. Map : 集合中的每一个元素包含一对键对象和值对象,集合中没有重复的键
对象,值对象可以重复
SortedSet:已经完成排序(修改其中数据后不会再次排序了)
SortedMap:对键排好序
顺序表:
ArrayList: 数组实现(插入删除效率低,查找效率高)
LinkedList:链表实现(插入删除效率高,查找效率低)
VectorList:适用于多线程的表,类似ArrayList,但是效率低一些
Hash表:
HashSet:按照哈希算法来存取集合中的对象,存取速度比较快(写实例时要先完善hashcode 和equals,是根据这个去重!)
TreeSet: TreeSet实现了SortedSet接口,能够对集合中的对象进行排序,不支持null
HashMap: 按哈希算法来存取键对象,有很好的存取性能
TreeMap: 实现了SortedMap接口,能对键对象进行排序
Iterator:默认初始位置在最左侧
对象如果没有重写toString方法,则默认是Object的方法返回值: 类名@哈希值
输出语句怎么把int转化为String类型:+ “ ” 通过+链接强制转换一下字符串
每个对象都自带equals()和hasCode()方法。是Object(所有类的超类)自带的
为什么要用equals,因为set不能重复,谁不能重复?自己定义的类的对象不能,那就必须该对象要用equals判断,且要重写,因为它不是基本类型,是类类型,而用hashCode是为了减少循环次数。hashCode和equals一般是配套重写的,一般是先判断hashCode再equals
java篇 之 集合的更多相关文章
- 大数据学习笔记——Java篇之集合框架(ArrayList)
Java集合框架学习笔记 1. Java集合框架中各接口或子类的继承以及实现关系图: 2. 数组和集合类的区别整理: 数组: 1. 长度是固定的 2. 既可以存放基本数据类型又可以存放引用数据类型 3 ...
- 【JAVA秒会技术之秒杀面试官】秒杀Java面试官——集合篇(一)
[JAVA秒会技术之秒杀面试官]秒杀Java面试官——集合篇(一) [JAVA秒会技术之秒杀面试官]JavaEE常见面试题(三) http://blog.csdn.net/qq296398300/ar ...
- Java中的集合List - 入门篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...
- Java中的集合Set - 入门篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合Set - 入门篇>,希望对大家有帮助,谢谢 简介 前面介绍了集合List,映射Map,最后再简单介绍下集合Set,相关类如下 ...
- Java面试专题-集合篇(2)
- JSON总结(java篇)
JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...
- 【转】Java如何克隆集合——深度拷贝ArrayList和HashSet
原文网址:http://blog.csdn.net/cool_sti/article/details/21658521 原英文链接:http://javarevisited.blogspot.hk/2 ...
- Java 常用List集合使用场景分析
Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...
- Java回顾之集合
在这篇文章里,我们关注Java中的集合(Collection).集合是编程语言中基础的一部分,Java自JDK早期,就引入了Java Collection Framework.设计JCF的那个人,后来 ...
随机推荐
- Hydra暴力破解工具
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [- ...
- quartus在线调试的方法
quartus在线调试的方法 在Quartus II Version 7.2 Handbook Volume 3: Verification中的Section V. In-System Design ...
- layui之表单验证
这篇文章的表单验证我只是随便记录下,望各位看官理解 1.排序 验证 html代码 <div class="layui-form-item"> <label cla ...
- 智能指针和异常、 weak_ptr、unique_ptr
12.1.4智能指针和异常 1.在块中创建的动态内存,如果是由内置指针来指向这块内存,那么若是在块结束时未delete这个指针,则该内存不会被释放,若在delete之前发生异常,由于还没执行delet ...
- Strategic game树形DP解法(Poj1463,Uva1292)
已经写过本题用二分图的做法,见这儿. 本题的图是一棵树,求最小点覆盖也可以用树形DP的做法. 定义状态f[0/1][u]表示以u为根的子树,u选取/不选最少需要选取多少点来覆盖. 显然 f[0][u] ...
- 【转载】Win7下如何使用GCC编译器
转自:http://jingyan.baidu.com/article/c275f6bacc0126e33c756771.html 双击GCC安装包,mingw-get-setup.exe,点击Ins ...
- pandas 进行excel绘图
python主流绘图工具:matplotlib ,seaborn,pandas ,openpyxl ,xslwriter openpyxl :首先说下这个官网的demo,看的有点懵,没有具体说明多个图 ...
- 《绘图前设置:像素格式——PIXELFORMATDESCRIPT、设备上下文、渲染上下文》
转载地址:https://www.cnblogs.com/wiener-zyj/p/4159745.html 像素格式——PIXELFORMATDESCRIPT.设备上下文.渲染上下文 在OpenG ...
- 【网易官方】极客战记(codecombat)攻略-地牢-辐射光环
关卡连接: https://codecombat.163.com/play/level/radiant-aura 骷髅,恐惧还是回避? 简介: 敬请期待! 默认代码 # 捡起发光石,让骷髅怪远离你一会 ...
- bugku 求getshell
要修改三个地方 根据大佬们的writeup,要修改三个地方: 1.扩展名filename 2.filename下面一行的Content-Type:image/jpeg 3.最最最重要的是请求头里的Co ...