image.png
    定义一个泛型类DAO,在其中定义一个Map成员变量,Map的键为String类型,值为T类型。
    __
    分别创建以下方法:
    public void save(String id,T entity):保存 T 类型的对象到Map成员变量中。
    _ public T get(String id):从map中获取id对应的对象。
    _ public void update(String id,T entity):替换mapkeyid的内容,改为entity对象
    _ public List list():返回map中存放的所有 T 对象
    _ public void delete(String id):删除指定id对象
    **
    *
    定义一个User类:
    * 该类包含:private成员变量(int类型) idage;(String 类型)name
    *
    创建DAO类的对象,分别调用其savegetupdatelistdelete方法来操作User对象,
    使用Junit_单元测试类进行测试。

    1. package com.atguigu.exercise;
    2. import java.util.*;
    3. /**
    4. * 定义一个泛型类DAO<T>,在其中定义一个Map成员变量,Map的键为String类型,值为T类型。
    5. * <p>
    6. * 分别创建以下方法:
    7. * public void save(String id,T entity):保存 T 类型的对象到Map成员变量中。
    8. * <p>
    9. * public T get(String id):从map中获取id对应的对象。
    10. * <p>
    11. * public void update(String id,T entity):替换map中key为id的内容,改为entity对象
    12. * <p>
    13. * public List<T> list():返回map中存放的所有 T 对象
    14. * <p>
    15. * public void delete(String id):删除指定id对象
    16. *
    17. * @author Dxkstart
    18. * @create 2021-05-28 20:10
    19. */
    20. public class DAO<T> {
    21. private Map<String, T> map = new HashMap<>();
    22. //保存 T 类型的对象到Map成员变量中。
    23. public void save(String id, T entity) {
    24. map.put(id, entity);
    25. }
    26. //从map中获取id对应的对象。
    27. public T get(String id) {
    28. return map.get(id);
    29. }
    30. //替换map中key为id的内容,改为entity对象
    31. public void update(String id, T entity){
    32. if(map.containsKey(id)){
    33. map.put(id,entity);
    34. }
    35. }
    36. //返回map中存放的所有 T 对象
    37. public List<T> list(){
    38. ArrayList<T> list = new ArrayList<>();
    39. Collection<T> values = map.values();
    40. for(T t: values){
    41. System.out.println(t);
    42. }
    43. return list;
    44. }
    45. //删除指定id对象
    46. public void delete(String id){
    47. map.remove(id);
    48. }
    49. }
    1. package com.atguigu.exercise;
    2. /**
    3. * 定义一个User类:
    4. * 该类包含:private成员变量(int类型) id,age;(String 类型)name。
    5. *
    6. *
    7. * @author Dxkstart
    8. * @create 2021-05-28 20:37
    9. */
    10. public class User {
    11. private int id;
    12. private int age;
    13. private String name;
    14. public User() {
    15. }
    16. public int getId() {
    17. return id;
    18. }
    19. public void setId(int id) {
    20. this.id = id;
    21. }
    22. public int getAge() {
    23. return age;
    24. }
    25. public void setAge(int age) {
    26. this.age = age;
    27. }
    28. public String getName() {
    29. return name;
    30. }
    31. public void setName(String name) {
    32. this.name = name;
    33. }
    34. public User(int id, int age, String name) {
    35. this.id = id;
    36. this.age = age;
    37. this.name = name;
    38. }
    39. @Override
    40. public String toString() {
    41. return "User{" +
    42. "id=" + id +
    43. ", age=" + age +
    44. ", name='" + name + '\'' +
    45. '}';
    46. }
    47. @Override
    48. public boolean equals(Object o) {
    49. if (this == o) return true;
    50. if (o == null || getClass() != o.getClass()) return false;
    51. User user = (User) o;
    52. if (id != user.id) return false;
    53. if (age != user.age) return false;
    54. return name != null ? name.equals(user.name) : user.name == null;
    55. }
    56. @Override
    57. public int hashCode() {
    58. int result = id;
    59. result = 31 * result + age;
    60. result = 31 * result + (name != null ? name.hashCode() : 0);
    61. return result;
    62. }
    63. }
    1. package com.atguigu.exercise;
    2. import java.util.List;
    3. /**
    4. * 创建DAO类的对象,分别调用其save、get、update、list、delete方法来操作User对象,
    5. * 使用Junit单元测试类进行测试。
    6. *
    7. *
    8. * @author Dxkstart
    9. * @create 2021-05-28 20:44
    10. */
    11. public class DAOTest {
    12. public static void main(String[] args) {
    13. DAO<User> dao = new DAO<User>();
    14. dao.save("1001",new User(1001,34,"周杰轮"));
    15. dao.save("1002",new User(1002,21,"邓紫棋"));
    16. dao.save("1003",new User(1003,24,"泰勒斯威夫特"));
    17. dao.update("1001",new User(1001,20,"蔡萝莉"));
    18. dao.delete("1001");
    19. List<User> list = dao.list();
    20. list.forEach(System.out::println);
    21. }
    22. }