首页 > 其他分享 >练习——泛型简单练习+JUnit的简单使用

练习——泛型简单练习+JUnit的简单使用

时间:2023-04-23 21:55:11浏览次数:28  
标签:map String id 练习 list JUnit void 泛型 public

package com.generic;

import org.junit.jupiter.api.Test;

import java.util.*;

/*
定义个泛型类DAO<T>,在其中定义一个Map成员变量,Map的键为String类型,值为T类型分别创建以下方法:
(1) public void save(String id,T entity):保存T类型的对象到 Map成员变量中
(2) public T get(String id):从map中获取id对应的对象
(3) public void update(String id,T entity):替换map 中key为id的内容,改为entity对象
(4) public List<T> list():返回map中存放的所有T对象
(5) public void delete(String id):删除指定id对象
定义一个 User 类:
该类包含:private成员变量(int类型)id,age;(String类型) nam
创建DAO类的对象,分别调用其save、get、update、list、delete方法来操作User对象,使用Junit单元测试类进行测试。
 */

@SuppressWarnings({"all"})
public class Exercise {
    public static void main(String[] args) {




    }
    @Test
    public void testList(){
        DAO<User> dao = new DAO<>();
        dao.save("001",new User(1,18,"tom"));
        dao.save("002",new User(2,20,"jack"));
        dao.save("003",new User(3,19,"jam"));

        List<User> list = dao.list();
        System.out.println(list);
        dao.update("003",new User(3,22,"pual"));
        System.out.println("===修改后===");
        System.out.println(list);
        dao.delete("003");
        System.out.println("===删除后===");
        System.out.println(list);
    }
}

class DAO<T>{
    private Map<String,T> map = new HashMap<>();
    public void save(String id,T entity){
        map.put(id,entity);
    }
    public T get(String id){
        return  map.get(id);
    }
    public void update(String id,T entity){
        map.put(id,entity);
    }
    //返回 map中存放的所有T对象
    //遍历map [k-v],将map的所有value(T entity),封装到ArrayList返回即可
    public List<T> list(){
        //创建ArrayList
        List<T> list = new ArrayList<>();
        //遍历map
        Set<String> keySet = map.keySet();
        for (String k : keySet) {
            list.add(get(k));
        }
        return list;
    }
    public void delete(String id){
        map.remove(id);
    }
}

class User{
    private int id;
    private int age;
    private String name;

    public User(int id, int age, String name) {
        this.id = id;
        this.age = age;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}

标签:map,String,id,练习,list,JUnit,void,泛型,public
From: https://www.cnblogs.com/Q1u-ovo/p/17347882.html

相关文章

  • 练习——泛型小练
    packagecom.generic;importjava.util.ArrayList;importjava.util.Comparator;/*定义Employee类1)该类包含:private成员变量name,sal,birthday,其中birthday为MyDate类的对象;2)为每一个属性定义getter,setter方法;3)重写toString方法输出name,sal,birthday4)M......
  • 平时练习
    CRUD代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content=&......
  • Java 静态泛型方法为什么要在返回值之前使用泛型
    静态方法定义静态泛型方法要在返回值之前使用泛型声明此方法为泛型方法:/***泛型方法的基本介绍*@paramtClass传入的泛型实参*@returnT返回值为T类型*说明:*1)public与返回值中间<T>非常重要,可以理解为声明此方法为泛型方法。......
  • java基础-泛型(七)
    泛型:jdk1.5版本以后出现的一个安全机制。表现格式:<>好处:1:将运行时期的问题ClassCastException问题转换成了编译失败,体现在编译时期,程序员就可以解决问题。2:避免了强制转换的麻烦。 只要带有<>的类或者接口,都属于带有类型参数的类或者接口,在使用这些类或者接口时,必须给<>中传递一......
  • Java泛型
    Java泛型概念Java泛型是一种在编译时进行类型检查和类型推断的机制,它可以让我们编写更加通用、可重用的代码,提高了代码的可读性和可维护性,同时保证了类型安全。Java泛型的核心思想是类型参数化,即在类、接口或方法的定义中使用类型参数来代替具体的类型,这些类型参数在实例化时被具体......
  • 《面试1v1》java泛型
    我是javapub,一名Markdown程序员从......
  • 牛客练习赛110
    A.嘤嘤的签到双指针+算贡献用cnt[]来记录当前维护区间1和4的数量,当当前区间不满足要求则移动左指针直到满足要求,再加上贡献即可。当然也可以记录最后的1和4的位置,这样他们位置中较小的那一个的后一个位置就是能满足要求的区间的最左端的左指针,但是该方法就没上一个那么通用了......
  • mysql综合练习题
    作业1第一题D错误。别名有空格要用“”都引起来第三题别名和之前的列名都可以使用作业2SELECT*FROMempSELECT*FROMdeptSELECT*FROMsalgrade--作业2--2.查看dept表和emp表的结构DESCdept;DESCemp;--3.1显示所有部门的名称SELECTdnameFROMd......
  • Linux练习题
    61.(多选题)社区发行版的特点包括A.厂商主导的开发B.采用开放开发模式C.社区开发者主导的开发D.由厂商提供支持和服务正确答案:62.(多选题)下面属于国际类别开源许可证(Internationallicenses)的是A.ApacheLicense2.0B.MulanPSLv2C.ServerSidePublicLicenseD.......
  • 团体天梯练习 L3-008 喊山
    L3-008喊山喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价......