泛型声明:
    interface接口{}和class类{}
    //如: List , ArrayList
    说明:

    1. 其中,T,K,V不代表值,而是表示类型。
    2. 任意字母都可以。常用T表示,是Type的缩写

    泛型实例化:
    要在类名后面指定类型参数的值(类型)。如:

    1. List strList = new ArrayList 0);
    2. Iterator iterator = customers.iterator();

    练习:

    1. 创建3个学生对象
    2. 放入到 HashMap中,要求Key是 String name, Value就是学生对象
    3. 使用两种方式遍历
    1. package test;
    2. import java.util.*;
    3. public class Main {
    4. public static void main(String[] args) {
    5. //使用泛型方式给HashSet 放入3个学生对象
    6. HashSet<Student> students = new HashSet<Student>();
    7. students.add(new Student("jack", 18));
    8. students.add(new Student("tom", 28));
    9. students.add(new Student("mary", 19));
    10. //遍历
    11. for (Student student : students) {
    12. System.out.println(student);
    13. }
    14. //使用泛型方式给HashMap 放入3个学生对象
    15. //K -> String V->Student
    16. HashMap<String, Student> hm = new HashMap<String, Student>();
    17. /*
    18. public class HashMap<K,V> {}
    19. */
    20. hm.put("milan", new Student("milan", 38));
    21. hm.put("smith", new Student("smith", 48));
    22. hm.put("hsp", new Student("hsp", 28));
    23. //迭代器 EntrySet
    24. /*
    25. public Set<Map.Entry<K,V>> entrySet() {
    26. Set<Map.Entry<K,V>> es;
    27. return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;
    28. }
    29. */
    30. Set<Map.Entry<String, Student>> entries = hm.entrySet();
    31. /*
    32. public final Iterator<Map.Entry<K,V>> iterator() {
    33. return new EntryIterator();
    34. }
    35. */
    36. Iterator<Map.Entry<String, Student>> iterator = entries.iterator();
    37. System.out.println("==============================");
    38. while (iterator.hasNext()) {
    39. Map.Entry<String, Student> next = iterator.next();
    40. System.out.println(next.getKey() + "-" + next.getValue());
    41. }
    42. }
    43. }
    44. /**
    45. * 创建 3个学生对象
    46. * 放入到HashSet中学生对象, 使用.
    47. * 放入到 HashMap中,要求 Key 是 String name, Value 就是 学生对象
    48. * 使用两种方式遍历
    49. */
    50. class Student {
    51. private String name;
    52. private int age;
    53. public Student(String name, int age) {
    54. this.name = name;
    55. this.age = age;
    56. }
    57. public String getName() {
    58. return name;
    59. }
    60. public void setName(String name) {
    61. this.name = name;
    62. }
    63. public int getAge() {
    64. return age;
    65. }
    66. public void setAge(int age) {
    67. this.age = age;
    68. }
    69. @Override
    70. public String toString() {
    71. return "Student{" +
    72. "name='" + name + '\'' +
    73. ", age=" + age +
    74. '}';
    75. }
    76. }

    image.png