黑马程序员技术交流社区
标题:
[原创]DVD管理系统项目--核心集合的选择问题
[打印本页]
作者:
万琪
时间:
2013-6-16 16:01
标题:
[原创]DVD管理系统项目--核心集合的选择问题
本帖最后由 Super_Class 于 2013-6-18 20:17 编辑
[
原创
]
DVD管理系统项目之一--核心集合的选择问题
问题说明:
要完成的项目主界面控制台输出如下,
<font face="微软雅黑">System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
System.out.println("-----------------------------------------------");
System.out.println("0. 借 出 排 行 榜");
System.out.println("1. 新 增 DVD");
System.out.println("2. 查 看 DVD");
System.out.println("3. 删 除 DVD");
System.out.println("4. 借 出 DVD");
System.out.println("5. 归 还 DVD");
System.out.println("6. 退 出 系 统");
System.out.println("-----------------------------------------------");
System.out.print("请选择:");</font>
复制代码
主要功能如上:
所以,要选择一个正确的集合来保存DVD数据的对象;
要求有:
1,有序
2,唯一
3,考虑增删的效率
****************************************************
这里我使用的是TreeSet,
下面是
集合,
DVD类的部分代码
<font face="微软雅黑"> // 拥有的DVD集合
TreeSet<DVD> myDVD = new TreeSet<DVD>();</font>
复制代码
万事开头难,选择一个重要的集合,在后面的还发中,是可以少走好多弯路的!
我开始就走过弯路,用了ArrayList,,
结果很悲剧。。。。。
这个问题可以横好的
分析总结了各个集合的优势
,,,所以
新手可以一起参考下
,,
如果你有更好的解决代码,可以和我分享,十分感谢。。。。
另外,下一步会遇到的问题是:
集合排序的动态刷新问题
。。。
我明天会把代码贴过来让大家帮忙解决!
作者:
万琪
时间:
2013-6-16 16:03
DVD类的代码漏掉了- -
// DVD类-------------------------------------------------------------------
class DVD implements Comparable<Object> {
// DVD名
private String name;
// 是否可借
private boolean state = true;
// 借出时间
private String lendData;
// 借出次数
int count;
// DVD构造方法
DVD(String name) {
this.name = name;
}
// 获取DVD信息
String getName() {
return name;
}
boolean getState() {
return state;
}
String getLendData() {
return lendData;
}
// 借出本DVD
boolean lend(String lendData) {
if (state) {
this.lendData = lendData;
state = false;
count++;
return true;
} else {
return false;
}
}
// 归还DVD
void back() {
state = true;
lendData = null;
}
// 重载object的equals
public boolean equals(DVD obj) {
return (this.getName().equalsIgnoreCase(obj.getName()));
}
// 实现DVD的可比性,实现Comparable接口,覆盖compareTo方法。
public int compareTo(Object obj) {
if (!(obj instanceof DVD))
throw new RuntimeException("发现非法DVD");
DVD dvd = (DVD) obj;
if (dvd.count > this.count)
return 100;
if (dvd.count < this.count)
return -100;
return this.getName().compareTo(dvd.getName());
}
}
复制代码
作者:
万琪
时间:
2013-6-17 15:54
。。没人顶。。没动力啊,,,{:soso_e129:}
怎么修改成已解决?。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2