JAVA泛型使用练习2(自定义泛型使用)

来源:互联网 发布:商家给淘宝开消费积分 编辑:程序博客网 时间:2024/06/06 02:22

自己想了个类似的题目接着写代码,写到熟练为止

DAO泛型,操作Student和Worker集合,当然也可以应用到更多的对象

然后对集合进行操作

package test10;import java.util.HashMap;import java.util.Map;public class TestDAO {public static void main(String[] args) {//对泛型类DAO进行操作, 创建Student 泛型对象DAO<Student> dao = new DAO<Student>();//创建Student map集合Map<Integer, Student> map = new HashMap<Integer,Student>();dao.setMap(map);//对泛型类DAO进行操作, 创建Woker泛型对象DAO<Worker> dao1 = new DAO<Worker>();Map<Integer, Worker> map2 = new HashMap<Integer,Worker>();dao1.setMap(map2);//对Student Map操作dao.getMap().put(1, new Student("RayLu", 23, "大学一年级"));dao.getMap().put(5, new Student("Tom", 32, "大学四年级"));dao.getMap().put(3, new Student("Bleach", 24, "大学二年级"));dao.getMap().put(4, new Student("Bruce", 25, "大学二年级"));//遍历StudentMapfor(Integer i: dao.getKey()){System.out.println(i+"==="+dao.getValue(i));}//增加学生dao.add(8, new Student("Jason",23,"大学三年级"));//删除学生dao.delete(3);//修改学生dao.modify(5, new Student("Tom", 32, "大学已毕业"));//查询学生System.out.println(dao.getValue(5));//遍历学生for(Integer i: dao.getKey()){System.out.println(i+"==="+dao.getValue(i));}//对Worker操作和Student操作方法同样。。}}
DAO类

package test10;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import java.util.TreeSet;public class DAO<T> {//private int id;//声明Map变量,其中Key为Integer类型,T为可变类型Map<Integer, T> map;//获取Map对象public Map<Integer, T> getMap(){return map;}//建立Map对象public void setMap(Map<Integer, T> map){this.map = map;}//操作Map对象,添加元素public void add(int index, T value){map.put(index, value);}//操作Map对象,删除元素public void delete(int index){map.remove(index);}//修改Map制定key的元素public void modify(int index, T value){map.put(index, value);}//查询Map中的元素public T getValue(int index){return map.get(index);}//获取Map中所有Keypublic Set<Integer> getKey(){Set<Integer> set = new TreeSet<Integer>();for(Integer in:map.keySet()){set.add(in);}return set;}//获取Map中所有Valuepublic List<T> getValue(){List<T> list = new ArrayList<T>();for(T t: map.values()){list.add(t);}return list;}}
Student类

package test10;public class Student extends Person{private String grade;public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}@Overridepublic String toString() {return "Student [grade=" + grade + ", getName()=" + getName() + ", getAge()=" + getAge() + "]";}public Student(String name, int age, String grade) {super(name, age);this.grade = grade;}@Overridepublic int hashCode() {final int prime = 31;int result = super.hashCode();result = prime * result + ((grade == null) ? 0 : grade.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (!super.equals(obj))return false;if (getClass() != obj.getClass())return false;Student other = (Student) obj;if (grade == null) {if (other.grade != null)return false;} else if (!grade.equals(other.grade))return false;return true;}}
Worker类

package test10;public class Worker extends Person{private int salary;public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}@Overridepublic String toString() {return "Worker [salary=" + salary + ", getName()=" + getName() + ", getAge()=" + getAge() + "]";}public Worker(String name, int age, int salary) {super(name, age);this.salary = salary;}@Overridepublic int hashCode() {final int prime = 31;int result = super.hashCode();result = prime * result + salary;return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (!super.equals(obj))return false;if (getClass() != obj.getClass())return false;Worker other = (Worker) obj;if (salary != other.salary)return false;return true;}}



0 0
原创粉丝点击