自己想了个类似的题目接着写代码,写到熟练为止
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, "大学二年级"));
//遍历StudentMap
for(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中所有Key
public Set<Integer> getKey(){
Set<Integer> set = new TreeSet<Integer>();
for(Integer in:map.keySet()){
set.add(in);
}
return set;
}
//获取Map中所有Value
public 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;
}
@Override
public String toString() {
return "Student [grade=" + grade + ", getName()=" + getName() + ", getAge()=" + getAge() + "]";
}
public Student(String name, int age, String grade) {
super(name, age);
this.grade = grade;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((grade == null) ? 0 : grade.hashCode());
return result;
}
@Override
public 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;
}
@Override
public String toString() {
return "Worker [salary=" + salary + ", getName()=" + getName() + ", getAge()=" + getAge() + "]";
}
public Worker(String name, int age, int salary) {
super(name, age);
this.salary = salary;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + salary;
return result;
}
@Override
public 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;
}
}