四种常见的数据结构、LinkedList、Set集合、Collection、Map总结
四种常见的数据结构:
1.堆栈结构:
先进后出的特点。(就像弹夹一样,先进去的在后进去的低下。)
2.队列结构:
先进先出的特点。(就像安检一样,先进去的先出来)
3.数组结构:
查找元素快,但是增删元素慢
4.链表结构:
增删元素快,但是查找元素慢
LinkedList:(List接口下的一个子类,和ArrayList是同级别关系)
1.底层是链表结构
2.它的一些特有方法:
addFirst(E e) : 向集合中的开头添加元素
addLast(E e):向集合的末尾添加元素
getFirst():得到集合中的第一个元素
getLast():得到集合中的最后一个元素
removeFirst():删除集合中的第一个元素
removeLast():删除集合中的最后一个元素
pop(E e) : 从集合的最上面弹出一个元素
push():向集合的最上面添加元素
isEmpty() : 判断集合中是否有为空
3.在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。
使用的方法是:调用addFirst(E e) 方法和getFirst() 方法
Set集合(Set是一个接口,和List一样,它俩也是同级别关系)
Set集合的遍历方式只有两种,1. 增强for 2. 迭代器
Set集合特点:
唯一性,元素不重复
1.Set的子类有:
HashSet、LinkedHashSet
2.HashSet:
a.HashSet是无序的,存取顺序不一样
b.底层是哈希表结构,通常自定义对象是需要重写HashCode方法和equals方法
c.HashSet是使用HashCode方法和equals方法来保证元素唯一的
d.判断原理是:
先判断HashCode方法
相同:
不添加
不相同:判断equals方法:
不相同:添加
相同:不添加
LinkedHashSet:
1.LinkedHashSet是有序的,存取顺序是一样的
2.底层是链表+哈希表结构。
3.通过链表来保证有序。通过哈希表来保证元素的唯一。
Collection总结:
1.子类:
List、Set(两个都是接口)
List子类:
ArrayList
LinkedList
Set子类:
HashSet
LinkedHashSet
2.Collection的方法:
boolean add(Object e): 添加
void clear(): 清空
boolean remove(Object o):删除
boolean contains(Object o): 包含
boolean isEmpty():是否为空
Iterator iterator():迭代器
int size(): 集合长度
Object toArray(): 将集合存到数组中
3.迭代器:
两个方法:
hasNext():是否有下一个元素
next(): 获取下一个元素
4.List和Set的区别:
List:
有序,且可有重复元素
Set:
它是一个无序的集合(元素存与取的顺序可能不同)
不可以有重复的元素
5.List集合中的特有方法:(有角标的都是List集合中的)
void add(int index, Object element) 将指定的元素,添加到该集合中的指定位置上
Object get(int index) 返回集合中指定位置的元素。
Object remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
Object set(int index, Object element) 用指定元素替换集合中指定位置的元素,返回值的更新前的元素
6.泛型:
好处:
提高了程序的安全性
将运行时期的异常提到的编译时期
避免了类型转换
Map:(它也是一个接口,它是和Collection同级别的,它是一个双列集合)
常用子类:
HashMap<key , value>:
泛型里存储键和值,键唯一,但是值可以重复。底层是哈希表结构,基本和HashSet集合差不多,在存储自定义对象时,需要重写HashCode方法和equals方法。无序。
LinkedHashMap:
底层是链表+哈希表结构。有序,存和取的顺序一致。
方法:
put(K,V):添加元素,相当于list集合中的add方法
get(key):得到key对应的值。
Map遍历(两种方式)
1. keySet()方法
转为Set对象,获取Map集合中的键集,存储到Set集合中
然后可使用增强for或迭代器来获取键和值都通过,键来获取值。
2. entrySet()方法
方法:
getey()
getValue()
转为entry对象,获取Map集合中的键和值的映射关系,存储到entry对象中。
然后,可以使用增强for或迭代器来获取键和值。
都通过,键来获取值。
Properties类(一般和流一块使用,它也是Map下的一个子类它是一个可以持久化的属性集。键值可以存储到集合中,也可以存储到持久化的设备(硬盘、U盘、光盘)上。键值的来源也可以是持久化的设备。
(有和流技术相结合的方法。)
1.public Object setProperty(String key, String value)调用 Map 的方法 put。
2.public Set<String> stringPropertyNames()返回此属性列表中的键集, //keyset()方法
3.public String getProperty(String key)用指定的键在此属性列表中搜索属性//get()方法
写入文件的方法:
store(Writer,”文件的描述信息”)
读取文件的方法:
load(Reader)
可变参数:
表现格式为:
数据类型... 变量名
相当于一个数组。
Collections工具类
方法
shuff()随机打乱方法
sort()排序方法,按照自然规律排序。
四种常见的数据结构、LinkedList、Set集合、Collection、Map总结的更多相关文章
- 一文读懂四种常见的XML解析技术
之前的文章我们讲解了<XML系列教程之Schema技术_上海尚学堂java培训技术干货><XML的概念.特点与作用.XML申明_上海Java培训技术干货>,大家可以点击回顾一下 ...
- 四种常见的App弹窗设计,你有仔细注意观察吗?
弹窗又称为对话框,是App与用户进行交互的常见方式之一.弹窗分为模态弹窗和非模态弹窗两种,两者的区别在于需不需要用户对其进行回应.模态弹窗会打断用户的正常操作,要求用户必须对其进行回应,否则不能继续其 ...
- (转)四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式(转自:https://imququ.com/post/four-ways-to-post-data-in-http.html) HTTP/1.1 协议规定的 HTT ...
- 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现
原文:四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现 虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们 ...
- 四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)
四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml) 转 ...
- application/json 四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 ...
- 转:application/json 四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 PO ...
- POST提交数据时四种常见的数据格式
最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...
- http协议里定义的四种常见数据的post方法
原文 https://blog.csdn.net/charlene0824/article/details/51199292 关于http协议里定义的四种常见数据的post方法,分别是: applic ...
随机推荐
- 2.10 webdriver中 js 使用
来源: 使用Webdriver执行JS小结 http://lijingshou.iteye.com/blog/2018929 selenium常用的js总结 http://www.cnblogs. ...
- bzoj3531: [Sdoi2014]旅行 (树链剖分 && 动态开点线段树)
感觉动态开点线段树空间复杂度好优秀呀 树剖裸题 把每个宗教都开一颗线段树就可以了 但是我一直TLE 然后调了一个小时 为什么呢 因为我 #define max(x, y) (x > y ? x ...
- vue 文件插件 Vetur 设置说明官网
vue 文件插件 Vetur 设置说明官网 https://vuejs.github.io/vetur/formatting.html#settings
- js的变量(01)
变量的声明用的修饰符 var ,let ,const var是普通变量 var 变量名 = 变量值 可以重复定义可以多次修改 let是es6新加的语法 let 变量 ...
- Mysql sql语句技巧与优化
一.常见sql技巧 1.正则表达式的使用 2.巧用RAND()提取随机行 mysql数据库中有一个随机函数rand()是获取一个0-1之间的数,利用这个函数和order by一起能够吧数据随机排序, ...
- python evel()的用法
老生常谈部分: eval(expression[, globals[, locals]]) expression -- 表达式. globals -- 变量作用域,全局命名空间,如果被提供,则必须是一 ...
- Java进阶学习(4)之继承与多态(上)
继承 媒体资料库的设计 代码复制是质量不良的表现 不具有可扩展性和可维护性 继承 子类父类关系 子类继承了什么 先定义初始化,后构造器 子类和父类的关系 子类有变量和父类变量相同时,父类变量隐藏 父类 ...
- Mysq的安装
1.安装包下载 2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7)设置修改用户密码 (8)退出 1.安装包 ...
- 后台用map接收数据,报类型转换错误
如果后台用接收接收前台传的数据时,因为不确定具体是哪一种类型而报错,可以使用 instanceOf if (dataMap.get("salePrice") instanceof ...
- pgspider http fdw http 相关的几个配置参数
http 请求时间配置 session 级别的 set http.timeout_msec = 10000; SELECT http_set_curlopt('CURLOPT_TIMEOUT', '1 ...