Map类型的的增删查、判断、循环输出
特点:
双链集合,一次存储一对数据,分为键和值,键唯一,值可多个,键值对应
首先新建集合
Map<String, String> map = new HashMap<>();
添加元素
注意该类型集合添加元素并不使用“add”而是使用“put”
map.put("陈平安","宁姚"); map.put("刘羡阳","赊月"); map.put("顾璨","春宵"); map.put("刘灞桥","苏嫁");
删除指定的元素
通用“remove”,如果想要看到自己删除的内容,可以
String delet = map.remove("刘灞桥"); //只输入键,不输入值
System.out.println(delet); //输出删除值
map.remove("顾璨");
当然如果想重新开始就
//清空 map.clear();
判断
集合内是否存在该类元素的话
//判断 boolean keyreturn = map.containsKey("刘灞桥"); //根据键判断 boolean keyreturn1 = map.containsKey("曹慈"); boolean valuereturn = map.containsValue("苏嫁"); //根据值来判断 boolean valuereturn1 = map.containsValue("裴钱"); System.out.println(keyreturn); //真 System.out.println(keyreturn1); //假 System.out.println(valuereturn); System.out.println(valuereturn1);
如果想要知道集合是否存在元素,则使用布尔类型的数据来接收结果
//判断集合是否为空 boolean empty = map.isEmpty(); //当没有清空集合元素时为假反之为真 System.out.println(empty);
循环
方法一:
当只想循环两个数据中的其中一个时
Set<String> keys = map.keySet(); //只关于键 for (String key : keys) { System.out.println(key); } Collection<String> values = map.values(); //只关于值 for (String s : values) { System.out.println(s); }
都是建立接口,赋值来循环,都使用”增强fo“r的形式,如果想两个一起循环的话
Set<String> keys = map.keySet(); //获取键 for (String key : keys) { String value = map.get(key); //获取键所对应的值 System.out.println(key+"="+value); //正常输出 }
方法二:
Set<Map.Entry<String, String>> entries = map.entrySet(); //如果选择导包,在最开始的地方输入:import java.util.Map.Entry;则在上面的第一个书名号内可以不用"Map." for (Map.Entry<String, String> en : entries) { String key = en.getKey(); //获取键 String val = en.getValue(); //获取值 System.out.println(key+"+"+val); //同样输出全部 }
方法三:
map.forEach(new BiConsumer<String, String>() { //在括号内new一个"BiC"选开头第一个 @Override public void accept(String key, String value) { //参数根据需要看改不改 System.out.println(key+" = "+value); } }); System.out.println("\n"+"=============================="+"\n"); //写法二:lamba写法 map.forEach((key, value)-> System.out.println(key+" = "+value));