概述
昨天学习完了集合,趁今天休息总结一下集合的体系和用法.
一,集合体系
1.1体系概述
在java集合中分为两大块儿,Collection接口和Map接口.
其中Collection有两个子类接口List和Set,其最大的区别在于List中元素可重复,有索引.而Set的元素不可重复.没有索引.
其中Map接口是有直接实现类,为映射关系.
1.2Collection和Map的区别
Collection: 单列集合 有的有索引(LIst) 有的没索引(Set)
有集合允许重复(List),有集合不允许重复(Set)
有序的(List,LinkedHashSet),无序的(HashSet)
有专用的遍历迭代器
Map集合: 双列集合 有K 和 V 组成元素 K不允许重复
K和v允许存储null.K只能存储一次null;
遍历采用keySet方法或者entrySet方法
二.Collection接口
2.1Collection概述
是单列集合的顶层接口.JDK不提供此接口的直接实现,提供风具体的子接口
常用方法: add remove clear contains isEmpty size
遍历: 迭代器 iterarot
1 Iterator it = c.iterator(); //创建迭代器对象,通过对象调用迭代器方法
2 while(it.hasNext()) {3 String s =it.next();4 System.out.println(s);5 }
2.2数据结构的简单特点
栈 先进后出
队列 数据先进先出
数组 查询快 增删慢
链表 增删快 查询慢
单向列表(无序) 双向列表(有序)
哈希表 查询增删都快
2.3List接口
2.3.1概述
特点: 索引 有序 可重复
特有方法:add remove set get
并发修改异常: 原因: 修改集合的次数和迭代器的预期的次数不一致
例如,在迭代器中添加了一个元素.
解决方法:采用for循环 或者使用Listiterator(用得少)
2.3.2List接口实现类
ArrayList集合: 底层结构数组 查询快 增删慢
LinkedList集合: 底层链表 增删快 查询慢
特有头尾方法: addFirst/Last get~ remove~
2.4Set接口
2.4.1概述
特点: 没有重复元素 没有带索引的方法
哈希值: 一个计算出来的int值 hashCode();
2.4.2set接口实现类
HashSet集合 底层哈希表(数组+链表+红黑树)
元素唯一性实现:
1.根据对象的哈希值计算储存位置
如果当前位置没有元素则直接存入
如果当前位置有元素,则第二步
2.当前元素的元素和已存在的元素比较哈希值
如果哈希值不同,则将当前元素进行储存
如果哈希值相同,则进行第三步
3.通过equals()方法比较两个元素的内容
如果内容不相同,则将当前元素进行储存
如果内容相同,则不储存当前元素
LinkedHashSet集合 底层哈希表和链表实现 有可预测的迭代次序
TreeSet集合 指定规则有序 自然比较Comparable 比较器比较Comparator
比较某对象时,需要重写Comparator方法
三,Map集合
3.1概述
Interface Map K:键的类型 V:值的类型
将键映射到值的对象;不能包含重复的键;每个键映射最多一个值
3.2常用功能
put remove clear containsKey containsValue isEmpty size
3.3获取功能
get(key) keySet Values entrySet
3.4遍历
3.4.1keySet方法
Set ss = map.keySet(); //创建key集合
for (String s : ss) { //遍历key集合
System.out.println(s + " " + map.get(s)); //调用方法
}
3.4.2entrySet方法
Set ss = map.keySet(); //创建key集合
for (String s : ss) { //遍历key集合
System.out.println(s + " " + map.get(s)); //调用方法
}
3.5嵌套集合
添加集合从里向外
遍历集合从外向里
四.Collections集合工具类
4.1工具类
sort 升序排列
reverse 反转
shuffle 随机
4.2储存对象并排序的时候 需要sort(array, new Comparator)就是重写Comparator方法
最后
以上就是顺心书本为你收集整理的java中的常用的集合有_JAVA常用集合的全部内容,希望文章能够帮你解决java中的常用的集合有_JAVA常用集合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复