实现招聘信息的存储
- 实现步骤:
-
创建招聘信息类Job,属性:jobId,jobName,jobCatgory,jobPub_date;
-
创建测试类1,用来存储5条Job信息,要求有遍历,添加,删除的方法,并且不允许有重复的招聘信息出现.
-
创建测试类2,用来存储5条Job信息,要求有遍历,按jobId或者jobName,jobPub_date排序的方法,并且可以实现降序排序
-
创建测试类3,用来存储5条Job信息,但可以修改招聘人数(num).提供修改招聘人数的方法,要求用hashmap;
程序:
- Job类: public class Job {private String jobId; private String jobName; private String jobCatgory; private String jobPub_Id; public Job(String jobId, String jobName, String jobCatgory, String jobPub_Id) { super(); this.jobId = jobId; this.jobName = jobName; this.jobCatgory = jobCatgory; this.jobPub_Id = jobPub_Id; } public Job() { super(); } public String getJobId() { return jobId; } public void setJobId(String jobId) { this.jobId = jobId; } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public String getJobCatgory() { return jobCatgory; } public void setJobCatgory(String jobCatgory) { this.jobCatgory = jobCatgory; } public String getJobPub_Id() { return jobPub_Id; } public void setJobPub_Id(String jobPub_Id) { this.jobPub_Id = jobPub_Id; } @Override //重写equals方法 public boolean equals(Object obj) { // TODO Auto-generated method stub if (!(obj instanceof Job)) {//如果不是Job类型返回false return false; } Job job=(Job) obj;//是就强转成job类型 return this.jobId.equals(job.jobId)&&this.jobName.equals(job.jobName)&& this.jobCatgory.equals(job.jobCatgory)&&this.getJobPub_Id().equals(job.jobPub_Id); } @Override public int hashCode() {//hash码返回hash码;;;返回当前对象的hash码 return this.jobId.hashCode();//让String调用hash码返回String类的hash码 }
-
- 比较排序重写:1.import java.util.Comparator;
public class JobCompareById implements Comparator<Job> {
@Override
public int compare(Job o1, Job o2) {
// TODO Auto-generated method stub
return o1.getJobId().compareTo(o2.getJobId()) ;
}
}2. import java.text.Collator; import java.util.Comparator; import java.util.Locale;
public class JobCompareByName implements Comparator<Job> {
@Override
public int compare(Job o1, Job o2) {
// TODO Auto-generated method stub
//实现中文比较
Collator instance = Collator.getInstance(Locale.CHINA);
return instance.compare(o1.getJobName(),o2.getJobName());
}
}3. import java.util.Comparator;
public class JobCompareBydata implements Comparator<Job>{
@Override
public int compare(Job o1, Job o2) {
// TODO Auto-generated method stub
return o1.getJobPub_Id().compareTo(o2.getJobPub_Id());
}
}
- 测试类1:import java.util.HashSet; import java.util.Scanner;
public class JobTest1 { HashSet<Job> jobs; public JobTest1() { jobs=new HashSet<Job>(); Job job1=new Job("job34","数据分析师","IT行业","2017-8-12"); Job job2=new Job("job21","电脑维修","维修行业","2017-7-2"); Job job3=new Job("job57","厨师","餐饮行业","2017-6-22"); Job job4=new Job("job32","项目部经理","管理行业","2017-8-5"); Job job5=new Job("job21","师机","交通运输行业","2017-7-18");
jobs.add(job1);
jobs.add(job2);
jobs.add(job3);
jobs.add(job4);
jobs.add(job5);
}
@SuppressWarnings("unused")
private void showJob() {
for (Job n:jobs) {
System.out.println(n.getJobPub_Id()+"\t"+n.getJobName()+"\t\t"+
n.getJobCatgory()+"\t\t"+n.getJobPub_Id());
}
}
public void addJob(Job job) {
jobs.add(job);
}
public void removeJob(String name) {
Job job = new Job();
for(Job nJob:jobs) {
if(nJob.equals(name)) {
job=nJob;
}
}
jobs.remove(job);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JobTest1 jt=new JobTest1();
System.out.println("*********************原5个job***********************");
jt.showJob();
System.out.println("\n*********************第一次添加job***********************");
Job job1=new Job("job24","快递员","快递行业","2017-4-11");
jt.addJob(job1);
jt.showJob();
System.out.println("\n*********************第二次添加job***********************");
Job job2=new Job("job24","快递员","快递行业","2017-4-11");
jt.addJob(job2);
jt.showJob();
System.out.println("\n*********************删除job***********************");
System.out.println("\n请输入你要删除的job名:");
Scanner scanner=new Scanner(System.in);
String name=scanner.next();
scanner.close();
jt.removeJob(name);
jt.showJob();
}
}
- 测试类2:import java.util.ArrayList; import java.util.Collections; import java.util.Scanner;
public class JobTest2 { ArrayList<Job> jobs; public JobTest2() { jobs=new ArrayList<Job>(); Job job1=new Job("job34","数据分析师","IT行业","2017-8-12"); Job job2=new Job("job21","电脑维修","维修行业","2017-7-2"); Job job3=new Job("job57","厨师","餐饮行业","2017-6-22"); Job job4=new Job("job32","项目部经理","管理行业","2017-8-5"); Job job5=new Job("job27","师机","交通运输行业","2017-7-18");
jobs.add(job1);
jobs.add(job2);
jobs.add(job3);
jobs.add(job4);
jobs.add(job5);
}
private void sortType(int n) {
switch (n) {
case 1:
JobCompareById jById=new JobCompareById();
Collections.sort(jobs, jById);
break;
case 2:
JobCompareByName jByName=new JobCompareByName();
Collections.sort(jobs, jByName);
break;
case 3:
JobCompareBydata jBydata=new JobCompareBydata();
Collections.sort(jobs, jBydata);
break;
default:
System.out.println("请按套路出牌!");
break;
}
}
@SuppressWarnings("unused")
private void showJob() {
for (Job n:jobs) {
System.out.println(n.getJobId()+"\t"+n.getJobName()+"\t\t"+
n.getJobCatgory()+"\t\t"+n.getJobPub_Id());
}
}
public void addJob(Job job) {
jobs.add(job);
}
public void removeJob(Job job) {
jobs.remove(job);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JobTest2 jt=new JobTest2();
System.out.println("*********************原5个job***********************");
jt.showJob();
System.out.println("\n*********************第一次添加job***********************");
Job job1=new Job("job24","快递员","快递行业","2017-4-11");
jt.addJob(job1);
System.out.println("\n\t\t请选择排序方式:\n1.按jobId排序\t"
+ "2.按jobName进行排序\t3.按发布时间进行排序");
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
jt.sortType(n);
jt.showJob();
}
} 5. 测试类3:import java.util.HashMap; import java.util.Scanner;
public class JobTest3 { HashMap<Job,Integer> jobs; public JobTest3() { // TODO Auto-generated constructor stub jobs=new HashMap<Job, Integer>(); Job job1=new Job("job34","数据分析师","IT行业","2017-8-12"); Job job2=new Job("job21","电脑维修","维修行业","2017-7-2"); Job job3=new Job("job57","厨师","餐饮行业","2017-6-22"); Job job4=new Job("job32","项目部经理","管理行业","2017-8-5"); Job job5=new Job("job21","师机","交通运输行业","2017-7-18");
jobs.put(job1, 6);
jobs.put(job2, 9);
jobs.put(job3, 5);
jobs.put(job4, 7);
jobs.put(job5, 8);
}
public void showJob() {
for (Job n:jobs.keySet()) {
System.out.println(n.getJobPub_Id()+"\t"+n.getJobName()+"\t\t"+
n.getJobCatgory()+"\t\t"+n.getJobPub_Id()+"\t"+jobs.get(n));
}
}
public void searcobhJ(String name,int num) {
for(Job n:jobs.keySet()) {
if (n.getJobName().equals(name)) {
jobs.put(n, num);
}else {
System.out.println("没有你要寻找的工作!");
}
/*if (jobs.keySet().contains(jobs.getname())) {
//如果原集合包含才修改,如果不存在就没修改
}*/
}
}
public static void main(String[] args) {
JobTest3 jt=new JobTest3();
jt.showJob();
Scanner scanner=new Scanner(System .in);
System.out.println("请输入你要串改的工作的名字!");
String jobName=scanner.next();
System.out.println("请输入您要串改的值!");
int num=scanner.nextInt();
scanner.close();
jt.searcobhJ(jobName, num);
jt.showJob();
}
}