双列集合的特点
一次可以添加一对元素(键值对)
双列集合一次需要存一对
键值对整体交错Entry对象
单列集合
一次只能添加一个元素
Map集合中的常见API
Map是双列集合的顶层接口,他的功能是全部双列集合都可以继承使用的
V put(k,v) 添加元素
V remove(obj k) 根据键删除
void clear()移除所有
boolean containsKey(obj key) 是否包含键
boolean containsValue(obj value) 判断是否包含值
boolean isEmpty()
int size() 长度
public static void main(String[] args) { //1.创建Map Map<String, String> m = new HashMap<>(); //2.添加元素 //put方法的细节: //添加/覆盖 //添加数据时,如果键不存在,那么把键值对对象添加到map当中 //在添加数据的时候,如果键时存在的,会把原有的键值对对象覆盖,把被覆盖的值进行返回 String v1 = m.put("aaa", "bbb"); // System.out.println(v1); m.put("aa", "bbb"); // String V2 = m.put("aa", "c"); // System.out.println(V2); m.put("a", "bbb"); System.out.println(m); //3.删除 m.remove("a"); System.out.println(m); //4.清空 // m.clear(); // System.out.println(m); //判断是否包含 boolean a = m.containsKey("a"); System.out.println(a); boolean r = m.containsKey("aaa"); System.out.println(r); boolean r21 = m.containsValue("bbb"); System.out.println(r21); System.out.println(m.size()); //打印 System.out.println(m); }
Map集合的遍历方式
1.键找值
//1。创建集合 Map<String, String> m = new HashMap<>(); //2.添加元素 m.put("猪", "李"); m.put("傻猪", "是李"); m.put("大傻猪", "是李小"); //3.遍历 //键找值 //获取所有的键,把键放到一个单列集合中 Set<String> key = m.keySet(); //遍历单列集合,获取每一个键(增强for) for (String k : key) { // System.out.println(k); //利用map中的键获取每一个值 String v = m.get(k); // System.out.println(v); System.out.println(k + "," + v); } System.out.println("====================="); //栏目大 key.forEach((String k)-> { String v = m.get(k); System.out.println(v); }); System.out.println("========================="); //迭代器 Iterator<String> iterator = key.iterator(); while (iterator.hasNext()){ String k = iterator.next(); String v = m.get(k); System.out.println(v); }
2.键值对
键值对对象Entry
//1.创建map集合 Map<String, String> m = new HashMap<>(); //2.添加元素 m.put("猪", "李"); m.put("傻猪", "是李"); m.put("大傻猪", "是李小"); //3。通过方法获取所有键值对对象 Set<Map.Entry<String, String>> entries = m.entrySet(); //4.遍历集合,得到每一个键值对对象 for (Map.Entry<String, String> entry : entries) { System.out.println(entry.getKey() + "=" + entry.getValue()); } System.out.println("============================"); //lambda m.forEach((k, v)-> System.out.println(k + "=" + v)); System.out.println("============================"); //迭代器 Iterator<Map.Entry<String, String>> iterator = entries.iterator(); while (iterator.hasNext()){ Map.Entry<String, String> entry = iterator.next(); System.out.println(entry.getKey()+"="+entry.getValue()); } }
3.lambda表达式
//1.创建map集合 Map<String, String> m = new HashMap<>(); //2.添加元素 m.put("猪", "李"); m.put("傻猪", "是李"); m.put("大傻猪", "是李小"); //3.lambda表达式 m.forEach(new BiConsumer<String, String>() { @Override public void accept(String key, String value) { System.out.println(key + "," + value); } }); System.out.println("=========================="); m.forEach((key, value) -> System.out.println(key + "," + value));