Java集合作业

实现招聘信息的存储
  • 实现步骤:
  1. 创建招聘信息类Job,属性:jobId,jobName,jobCatgory,jobPub_date;

  2. 创建测试类1,用来存储5条Job信息,要求有遍历,添加,删除的方法,并且不允许有重复的招聘信息出现.

  3. 创建测试类2,用来存储5条Job信息,要求有遍历,按jobId或者jobName,jobPub_date排序的方法,并且可以实现降序排序

  4. 创建测试类3,用来存储5条Job信息,但可以修改招聘人数(num).提供修改招聘人数的方法,要求用hashmap;

程序:
  1. 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. 比较排序重写: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. 测试类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();

}

}

  1. 测试类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();
	
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用来完成大作业的。文档内容: 1 Java技术体系 1.1 Java语言 1.2 Java平台 1.3 Java应用领域 2 Java语言的技术特点 2.1 1 2.2 2 2.3 3 3 Java语言与C++的异同分析总结。 4 选用C和java语言时编程算法程序有什么不同,有什么优势和劣势。 5 自己编程学习的级别和状态。以及自己以后的编程学习的计划和想法。 6 下面3道题目中选一道,给出算法分析和程序。 1)“黄金分割数”在我们的生活中很常见,但是在不同的应用领域,要求的精度也不一样。 例如:三位小数是0.618 现在我们需要你能求出保留100位小数的黄金分割数,采用的算法为“分层计算法”: 黄金数= 1 --------------- 1+ 1 ------------- 1+ 1 ----------- 1+ 1 --------- ..... 注意,计算出的结果,如果第100位为0也需要保留。 2)已知一个数列: 5,2,4,3,7,6 那么,在这个数列中存在这样一些“连续数”,例如:5,2,4,3这个子数列排序后是连续的。同样2,4,3也是连续的,为了方便表示 我们使用下标来标识,这样,这个数列中存在以下“连续数”: [1,1] [1,4] [1,6] [2,2] [2,4] [3,3] [3,4] [4,4] [5,5] [5,6] [6,6] 这样,他就存在11个“连续数”。现在需要你在用户找出一个数组中所有的“连续数”。 要求: 1、用户输入一个整数N,表示下面数组的个数 2、用户每输入一行作为一个数组 如: 用户输入: 1 5,2,4,3,7,6 程序输出: 11 3)有一种数我们称之为幸运数,它的特点是这样的,首先,由自然数按顺序排列: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 … 这样,1比较特殊, 1为第一个幸运数,那么,我们移除掉序号能被2整除的数(注意:是序号,而不是数本身,每次移除后都重新排序)就剩下: 1 3 5 7 9 11 13 15 17 19… 3为第二个幸运数,那么我们需要去掉序号能被3(下一次是除4,然后是5,每次加1)整除的数,5 11 17...剩下: 1 3 7 9 13 15 19… 那么7为第三个幸运数,后面的幸运数,依此类推,移除之后剩下的数字都是幸运数。 现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m<n<=1000*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: 5 格式:小四,1.5倍行距

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值