TreeSet图书管理系统

TreeSet底层是二叉树,可以对对象元素进行排序,但是自定义类需要实现comparable接口,重写comparaTo() 方法。

TreeSet插入的同时就立刻进行排序,只需要设定好比较器,就能按照设定来进行排序,因为他是一个红黑树,树的特征就是拥有排序。同时他是个set,只要比较器认为是同一个,就会被去重。

TreeSet内部是是用了TreeMap,Set值保存在Map的key中,value存了一个Object,Map中如果Key值相同会被认为是同一个,这样就能够实现数据去重。TreeMap内部维护的是一个红黑树。因为是树状结果,那么其查询效率和插入效率都是log(n),当然对应耗时会因为红黑树平衡调整,会有相应的耗时。

 management封装

import java.util.Calendar;

public class Management implements Comparable<Management>{
	String userId;
	String bookId;

	Calendar borrowTime;
	Calendar returnTime;
	
	public Management() {
		super();
		this.borrowTime = null;
		this.returnTime = null;
	}
	
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getBookId() {
		return bookId;
	}

	public void setBookId(String bookId) {
		this.bookId = bookId;
	}

	public Calendar getBorrowTime() {
		return borrowTime;
	}

	public void setBorrowTime(Calendar borrowTime) {
		this.borrowTime = borrowTime;
	}

	public Calendar getReturnTime() {
		return returnTime;
	}

	public void setReturnTime(Calendar returnTime) {
		this.returnTime = returnTime;
	}
	@Override
	public int compareTo(Management o) {
		int num = (this.getUserId().length()-o.getUserId().length())>0?1:-1;
		return num;
	}
}

 

 book封装

public class Book implements Comparable<Book>{
	String bookId;
	String bookName;
	String bookAdress;
	int time;
	
	public Book() {
		super();
		time = 0;
	}
	
	public int getTime() {
		return time;
	}

	public void setTime(int time) {
		this.time = time;
	}

	@Override
	public int compareTo(Book o) {
		int num = this.getTime()>o.getTime()?1:-1;
		return num;
	}
	public String getBookId() {
		return bookId;
	}
	public void setBookId(String bookId) {
		this.bookId = bookId;
	}
	public String getBookName() {
		return bookName;
	}
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getBookAdress() {
		return bookAdress;
	}
	public void setBookAdress(String bookAdress) {
		this.bookAdress = bookAdress;
	}
	@O
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值