Map集合的特点

  1. 特点:双列集合,元素由键值对(Entry)构成:key(键)-- value(值)

注意

  1. 键(key)不可以重复,值(value)可以重复应用:<br /> Map<Ti,T2>map = new HashMap<>():<br /> 解释: T1:表示键的数据类型.T2:表示值的数据类型

成员方法

  1. V put(K key,V value):添加元素(键值对的形式). 元素第一次添加,返回null,重复添加,会用新值覆盖旧值,并返回旧值<br /> v get(Object key) ;根据键获取其对应的值<br /> Set<K> keySet() :获取所有键的集合.

遍历步骤

  1. 1.获取所有的键的集合。 keySet()<br /> 2.遍历所有的键,获取每一个键。 迭代器或增强for<br /> 3.根据键,获取指定的值 get()

案例

  1. public class MapDemo {
  2. public static void main(String[] args) {
  3. //需求:往map集合中添加3个学生对象,然后打印
  4. //创建集合对象
  5. //键:表示学生编号 值:表示学生对象
  6. Map<Integer,xue> map = new HashMap<>();
  7. //创建元素对象
  8. xue s1 = new xue("张三",20);
  9. xue s2 = new xue("李四",30);
  10. xue s3 = new xue("王五",18);
  11. xue s4 = new xue("王五",18);
  12. //将元素对象添加到集合对象中
  13. /* xue xue1 = map.put(1, s1);
  14. System.out.println("xue1:"+xue1);
  15. xue xue2 = map.put(1, s2);
  16. System.out.println("xue2:"+xue2);*/
  17. //实际开发中用
  18. map.put(1,s1);
  19. map.put(2,s2);
  20. map.put(3,s3);
  21. map.put(4,s4);
  22. //根据键获取值
  23. xue xue = map.get(2);
  24. System.out.println("key:"+2+",value:"+xue);
  25. //打印集合
  26. System.out.println(map);
  27. System.out.println("----------------");
  28. //遍历集合
  29. /*// 1.获取所有的键的集合。 keySet()
  30. Set<Integer> keys = map.keySet();
  31. // 2.遍历所有的键,获取每一个键。 迭代器或增强for
  32. //获取迭代器对象
  33. Iterator<Integer> it = keys.iterator();
  34. while (it.hasNext()){
  35. //如果迭代器中有数据,就获取
  36. Integer key = it.next();
  37. // 根据键,获取值
  38. Note.xue xue1 = map.get(key);
  39. System.out.println("key:"+key+"...value"+xue1);
  40. }*/
  41. //通过增强for实现
  42. Set<Integer> keys = map.keySet();
  43. for (Integer key : keys) {
  44. Note.xue value = map.get(key);
  45. System.out.println("key:"+key+"...value:"+value);
  46. }
  47. }
  48. }
  49. //学生类
  50. class xue{
  51. private String name;
  52. private int age;
  53. public xue() {
  54. }
  55. public xue(String name, int age) {
  56. this.name = name;
  57. this.age = age;
  58. }
  59. public String getName() {
  60. return name;
  61. }
  62. public void setName(String name) {
  63. this.name = name;
  64. }
  65. public int getAge() {
  66. return age;
  67. }
  68. public void setAge(int age) {
  69. this.age = age;
  70. }
  71. @Override
  72. public String toString() {
  73. return "xue{" +
  74. "name='" + name + '\'' +
  75. ", age=" + age +
  76. '}';
  77. }
  78. @Override
  79. public boolean equals(Object o) {
  80. if (this == o) return true;
  81. if (o == null || getClass() != o.getClass()) return false;
  82. xue xue = (xue) o;
  83. return age == xue.age && Objects.equals(name, xue.name);
  84. }
  85. @Override
  86. public int hashCode() {
  87. return Objects.hash(name, age);
  88. }
  89. }