特点:
在进行创建该系列的集合时:k,v都是数据类型
一般用于k数据类型(相当于元素)的拥有v什么量等
数据特征由键决定
键可以作为一个类,来填入旗下对象的属性
1.是双列集合,格式:{key1=value1,key2=value2,key3=value3...},一次需要存一对数据作为一个元素
2.Map集合的每个元素“ key(键)=value (值)”称为一个键对值/键值对对象/一个Entry对象,Map集合也被叫做”键值对集合“
3.Map集合的所有键是不允许重复的,但值可以重复,键和值是一 一对应的,每一个键只能找到自己对应的值
----------------------------------------------
可以应用于储存一 一对应的数据时。
可以使用集合的嵌套:将键对应的值为集合。
----------------------------------------------
Map集合体系(本身是一个泛型类型接口)
旗下实现类主要用的有HashMap<k,v>,TreeMap<k,v>....
Map系列集合的特点:
Map系列集合的特点都是由键决定的,值只是附属品,值是不做要求的。
HashMap(由键决定特点):无序,不重复,无索引;(用的较多)
LinkedHashMap(由键决定其特点):由键决定的特带你:有序,不重复,无索引。
(一般用于排序)
TreeMap(由键决定特点):按照大小默认升序排序,不重复,无索引。
在进行获取元素值得时候是用键来进行获取的对应值的。(需要用到方法)
Map集合提供的常用方法:
拓展常用方法: 接收导入的集合对象.putAll(被导入的集合对象);
特点在进行导入的时候原集合数据不丢失。但只能够添加键不同的数据
Map系列集合的遍历方式:
方式一:直接进行获取集合的所有键值在通过键值间接来获取其对应的value
package Map;
import java.util.*;
//进行对Map系列集合进行遍历
public class test {
public static void main(String[] args) {
Map<String,Double> map=new HashMap<>();
map.put("傻逼一号",1.1);
map.put("傻逼二号",2.2);
map.put("傻逼三号",3.3);
map.put("傻逼四号",4.4);
System.out.println(map);
//获取map集合的所有键
Set<String> keys=map.keySet();
System.out.println(keys);
//遍历所有键,获取对应的值
for (String each: keys) {
double value=map.get(each);
System.out.println(each+"=========>"+value);
}
}
}
方法二:键值对直接进行遍历(将键值对看成一个整体进行遍历)
set<Map.Entry<K,V>> entrySet();
entrySet方法来进行获取所有键值对的数据详情。返回值在Set集合
Set<Map.Entry<K,V>>之后在进行用foreach循环来进行遍历
Map.Entry提供了getKey();用于获取键
Map.Entry提供了getValue();用于获取值
Set<Map.Entry<String,Double>>entries=map.entrySet();
//这时就会将每个键值对封装为每一个Entry对象。
for (Map.Entry<String,Double> entry: entries) {
String key=entry.getKey();
double values= entry.getValue();
System.out.println(key+"======》"+values);
}
方法三:使用Lambda方式进行遍历
package Map;
import java.util.HashMap;
import java.util.Map;
public class test2 {
public static void main(String[] args) {
Map<String,Double> map=new HashMap<>();
map.put("傻逼一号",1.1);
map.put("傻逼二号",2.2);
map.put("傻逼三号",3.3);
map.put("傻逼四号",4.4);
System.out.println(map);
map.forEach((k,v) ->{
System.out.println(k+"====>"+v);
});
}
}
可以看出,在实质上,是将第二种方法进行了封装,称为了接口。
再通过Lambda进行了简化得到的方式三