黑马程序员技术交流社区
标题:
【石家庄校区】Map的常见使用
[打印本页]
作者:
弑刖
时间:
2018-6-7 10:17
标题:
【石家庄校区】Map的常见使用
本帖最后由 小石姐姐 于 2018-6-8 11:38 编辑
一 HashSet
1. Set体系的特点
(1) 无序,得到元素的(储存和输出)顺序有可能不一样
(2) 不允许重复(要求元素唯一)
(3) 没有索引
2. Collections工具类
(1) collection集合体的最顶层,包含了集合体系的共性
(2) collections是一个工具类方法是用来操作collection
(3) binarySearch(List list,Object key)二分查找(从中间查找,要有序) 指定元素在指定列表的索引位置
(4) copy (list dest,list src) 是把原列表中的数据覆盖到目标列表(目标列表一定要大于等于原列表
(5) fill(List list ,Object obj) 使用指定的对象填充到指定列表的所有元素
(6) reverse(List list)反转(反转数组)
(7) shuff(List list) 随机置换(随机调换元素的位置)
(8) sort 按照列表的自然顺序输出
(9) swap(List list,int i,int j) 把列表中的两个索引进行互换
(10) 如果要比较两个对象,就要让对象具有可比性,所以类要实现Comparable<>,泛型就是类的名字,实现Comparable中的方法,comparTo,实现比较方法
例如:比较狗的年龄
public int compareTo(Dog o) {
return this.age-o.age;
}
3. hashcode哈希值
(1) 哈希表,是数组+链表
二HashMap
1. Map接口 将键映射到值的对象,一个映射不能包含重复的键,是双层集合的顶层,和collection是一个级别
2. 键值对方式储存
3. 无序
4. put(K key,V Value) 增加和修改 ,添加键值对(如果key已经存在,则会用新的value覆盖原来的value,并返回原来的value
5. clear() 清空
6. remove( key) 删除 返回删除对应的值,如果没有删除成功,返回null
7. get() 获取
8. size 集合长度
9. boolean containsKey 包含指定的键
10. boolean containsValue包含指定的值
11. boolean isEmpty是否为空 如果没有返回true
12. Set() 获取键值对的Set集合
13. Set<k> keySet()获取所有键的Set集合 返回所有的key的值
14. Collection Value 获取所有值的Collection集合 允许重复
15. entrySet 遍历
16. map 中套map
Map<String, Map<String,String>>
Map(itheima)
| key value
|- "基础班" = Map(base)
| | key value
| |- "01" = "zhangsan"
| |- "02" = "lisi"
|- "就业班" = Map(job)
| key value
|- "03" = "wangwu"
|- "04" = "zhaoliu"
三可变参数
1当参数不确定时,类型明确,可以把这个参数直接变为数组
2.形参 类型...变量名
3,在可变参数之后不可以变换数据类型
实现的功能:
一 去重
Set:会改变原来集合的顺序
Set<Integer> set=new HashSet<>();
for (int i : list) {
set.add(i);
}
LinkedHashSet:不会改变顺序
LinkedHashSet<Integer> set=new LinkedHashSet<>();
for (int i : list) {
set.add(i);
}
List: 不会改变顺序
List<Integer> newList=new ArrayList<>();
for (Integer integer : list) {
//包含
if(!newList.contains(integer)){
newList.add(integer);
}
}
获取map集合的键值对的值
1.Entry
Set<Map.Entry<String,String>> entry=map.entrySet()
for (Map.Entry<String, String> entry1 : entry) {
String key=entry1.getKey();
String value=entry1.getValue();
System.out.println(key+value);
}
2.直接获取key的值,在由key的值,获取到value的值
Set<String> keys=student.keySet();
for (String key : keys) {
String value=map.get(key);
System.out.println(key+value);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2