1.向TreeSet集合中加入5个员工的对象,根据员工的年龄(升序)进行排序...
import java.util.Set;
import java.util.TreeSet;
/**
* 1.向TreeSet集合中加入5个员工的对象,根据员工的年龄(升序)进行排序,若年龄相同,再根据
工龄(降序)来排序,若工龄相同,根据薪水(降序)排序
* */
class Employee implements Comparable<Employee>{
int age;
int workAge;
int salary;
public Employee(int age,int workAge,int salary) {
this.age = age;
this.workAge = workAge;
this.salary = salary;
}
@Override
public String toString() {
return "Employee[年龄:" + age + ", 工龄:" + workAge + ", 薪水:" + salary + "]";
}
@Override
public int compareTo(Employee o) {
//根据员工的年龄(升序)进行排序,若年龄相同,再根据工龄(降序)来排序,若工龄相同,根据薪水(降序)排序
if(this.age==o.age) {
if(this.workAge==o.workAge) {
return o.salary-this.salary;
}else {
return o.workAge-this.workAge;
}
}else{
return this.age - o.age;
}
}
}
public class Work01 {
public static void main(String[] args) {
Set<Employee> set = new TreeSet<Employee>();
set.add(new Employee(25, 3, 5555));
set.add(new Employee(27, 4, 7777));
set.add(new Employee(26, 4, 6666));
set.add(new Employee(28, 5, 8888));
set.add(new Employee(28, 6, 9999));
System.out.println(set);
}
}
2.Map集合的使用
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
/**
* 2.
Map
key: value:
tom CoreJava
John Oracle
Susan Oracle
Jerry JDBC
Jim Unix
Kevin JSP
Lucy JSP
1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值,表示上述 课程安排。
2) 增加了一位新老师Allen 教JDBC
3) Lucy 改为教CoreJava
4) 遍历Map,输出所有的老师及老师教授的课程(Set<Map.Entry<String,String>>、Set<String> get(key))
5) 利用Map,输出所有教JSP 的老师
* */
public class Work02 {
public static void main(String[] args) {
//1) 使用一个Map,以老师的名字作为键,以老师教授的课程名作为值
Map<String, String> map = new HashMap<String, String>();
map.put("tom", "CoreJava");
map.put("John", "Oracle");
map.put("SuSan", "Oracle");
map.put("Jerry", "JDBC");
map.put("Jim", "Unix");
map.put("Kevin", "JSP");
map.put("Lucy", "JSP");
//2) 增加了一位新老师Allen 教JDBC
map.put("Allen", "JDBC");
//3) Lucy 改为教CoreJava
map.replace("Lucy", "CoreJava");
//4) 遍历Map,输出所有的老师及老师教授的课程(Set<Map.Entry<String,String>>、Set<String> get(key))
System.out.println("遍历Map,输出所有的老师及老师教授的课程为:");
Set<Entry<String, String>> set = map.entrySet();
for(Entry<String, String> entry:set) {
System.out.println(entry.getKey()+"--->"+entry.getValue());
}
//5) 利用Map,输出所有教JSP 的老师
System.out.println("所有教JSP的老师为:");
for(Entry<String, String> entry:set) {
if(entry.getValue().equals("JSP") ){
System.out.println(entry.getKey());
}
}
}
}
3. 集合中存储学生对象,属性有,学号,姓名,分数,请选择合适的集合进行存储...
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* 3. 集合中存储学生对象,属性有,学号,姓名,分数,请选择合适的集合进行存储,要求:
(1). 先按分数的降序排列,如果分数相同,则按学号升序排列(给定多个分数相同的学生)
(2). 求出学员的优秀人数,及优秀率; (达到80分及以上, 则为优秀)
(3). 求出学员的几个人数,及及格率;(达到60分及以上, 则为及格)
* */
class Student{
String id;
String name;
int score;
public Student(String id,String name,int score) {
this.id = id;
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "Student[学号:" + id + ",姓名:" + name + ",分数:" + score + "]";
}
}
public class Work03 {
public static void main(String[] args) {
Set<Student> set = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//(1). 先按分数的降序排列,如果分数相同,则按学号升序排列(给定多个分数相同的学生)
if(o1.score==o2.score) {
return o1.id.compareTo(o2.id);
}else {
return o2.score-o1.score;
}
}
});
set.add(new Student("001", "zs", 88));
set.add(new Student("002", "ls", 88));
set.add(new Student("003", "ww", 88));
set.add(new Student("004", "zl", 77));
set.add(new Student("005", "zs", 55));
System.out.println(set);
//(2). 求出学员的优秀人数,及优秀率; (达到80分及以上, 则为优秀)
int num=0;
double rate = 0.0;
for(Student o:set) {
if(o.score>=80) {
num++;
}
}
rate = num/5.0;
System.out.println("学员的优秀人数为:"+num+"\t优秀率为:"+rate);
//(3). 求出学员的几个人数,及及格率;(达到60分及以上, 则为及格)
int num2=0;
double rate2 = 0.0;
for(Student o:set) {
if(o.score>=60) {
num2++;
}
}
rate2 = num2/5.0;
System.out.println("学员的及格人数为:"+num2+"\t及格率为:"+rate2);
}
}
4.使用键盘输入省的名称,得到所有的市
import java.util.Arrays;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
/**
* 4. 辽宁省、吉林省、黑龙江省、广东省
辽宁省、
沈阳、大连、鞍山、抚顺、本溪、丹东、锦州、营口,阜新
吉林省
吉林市、四平市、通化市、白山市、辽源市、白城市
黑龙江省
哈尔滨市,齐齐哈尔市,鸡西市,鹤岗市,双鸭山市,大庆市
广东省
广州,深圳,珠海,东莞,佛山,中山,惠州
要求使用键盘输入省的名称,得到所有的市
说明: Map---key(String省份) value(List-String元素)
输入:辽宁省---map.get("辽宁省")
* */
public class Work04 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] list1 = new String[] {"沈阳","大连","鞍山","抚顺","本溪","丹东","锦州","营口","阜新"};
String[] list2 = new String[] {"吉林市","四平市","通化市","白山市","辽源市","白城市"};
String[] list3 = new String[] {"哈尔滨市","齐齐哈尔市","鸡西市","鹤岗市","双鸭山市","大庆市"};
String[] list4 = new String[] {"广州","深圳","珠海","东莞","佛山","中山","惠州"};
Map<String, String[]> map = new TreeMap<String, String[]>();
map.put("辽宁省", list1);
map.put("吉林省", list2);
map.put("黑龙江省", list3);
map.put("广东省", list4);
System.out.println("请输入省的名称:");
String name = input.nextLine();
System.out.println(Arrays.toString(map.get(name)));
}
}
|