Map集合的特点
特点:双列集合,元素由键值对(Entry)构成:key(键)-- value(值)
注意
键(key)不可以重复,值(value)可以重复应用:<br /> Map<Ti,T2>map = new HashMap<>():<br /> 解释: T1:表示键的数据类型.T2:表示值的数据类型
成员方法
V put(K key,V value):添加元素(键值对的形式). 元素第一次添加,返回null,重复添加,会用新值覆盖旧值,并返回旧值<br /> v get(Object key) ;根据键获取其对应的值<br /> Set<K> keySet() :获取所有键的集合.
遍历步骤
1.获取所有的键的集合。 keySet()<br /> 2.遍历所有的键,获取每一个键。 迭代器或增强for<br /> 3.根据键,获取指定的值 get()
案例
public class MapDemo { public static void main(String[] args) { //需求:往map集合中添加3个学生对象,然后打印 //创建集合对象 //键:表示学生编号 值:表示学生对象 Map<Integer,xue> map = new HashMap<>(); //创建元素对象 xue s1 = new xue("张三",20); xue s2 = new xue("李四",30); xue s3 = new xue("王五",18); xue s4 = new xue("王五",18); //将元素对象添加到集合对象中 /* xue xue1 = map.put(1, s1); System.out.println("xue1:"+xue1); xue xue2 = map.put(1, s2); System.out.println("xue2:"+xue2);*/ //实际开发中用 map.put(1,s1); map.put(2,s2); map.put(3,s3); map.put(4,s4); //根据键获取值 xue xue = map.get(2); System.out.println("key:"+2+",value:"+xue); //打印集合 System.out.println(map); System.out.println("----------------"); //遍历集合 /*// 1.获取所有的键的集合。 keySet() Set<Integer> keys = map.keySet(); // 2.遍历所有的键,获取每一个键。 迭代器或增强for //获取迭代器对象 Iterator<Integer> it = keys.iterator(); while (it.hasNext()){ //如果迭代器中有数据,就获取 Integer key = it.next(); // 根据键,获取值 Note.xue xue1 = map.get(key); System.out.println("key:"+key+"...value"+xue1); }*/ //通过增强for实现 Set<Integer> keys = map.keySet(); for (Integer key : keys) { Note.xue value = map.get(key); System.out.println("key:"+key+"...value:"+value); } }}//学生类class xue{ private String name; private int age; public xue() { } public xue(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "xue{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; xue xue = (xue) o; return age == xue.age && Objects.equals(name, xue.name); } @Override public int hashCode() { return Objects.hash(name, age); }}