IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java-集合案例三 -> 正文阅读

[Java知识库]Java-集合案例三

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)));
	}
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 07:48:53  更:2021-11-24 07:50:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:10:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码