📄 dataaccessor.java
字号:
import java.util.*;
/**
* 这个抽象类定义了如何读取一个数据文件。 它提供的方法可以用来获得CD的分类和具体的CD信息
*
*/
public abstract class DataAccessor {
/**
* 存放CD信息的HashMap/hashtable .
*
*/
protected HashMap dataTable;
/**
* 最近增加的CD集合
*
*/
protected ArrayList recentRecordingList;
/**
* 默认构造方法
*/
public DataAccessor() {
dataTable = new HashMap();
recentRecordingList = new ArrayList();
}
/**
* 获得CD分类集合
*/
public ArrayList getCategories() {
Set categorySet = dataTable.keySet();
log("获得分类...");
ArrayList categories = new ArrayList(categorySet);
// 排序
Collections.sort(categories);
log("完成获得分类!\n");
return categories;
}
/**
* 获得某类CD的集合
*
* @param 类别
*/
public ArrayList getRecordings(String category) {
ArrayList recordingList = null;
log("获得CD集合信息, 它们属于: " + category);
recordingList = (ArrayList) dataTable.get(category);
// 排序
Collections.sort(recordingList);
log("完成获得CD集合信息!\n");
return recordingList;
}
/**
* 在内存中增加新的CD
*
* @param 被增加的CD
*
*/
public void addRecording(Recording theRecording) {
String category = theRecording.getCategory();
log("添加新的CD: " + theRecording);
ArrayList recordingList = (ArrayList) dataTable.get(category);
recordingList.add(theRecording);
recentRecordingList.add(theRecording);
log("完成添加新的CD!\n");
}
/**
* 从文件中读取数据
*/
public abstract void load();
/**
* 向文件中保存数据
*/
public abstract void save();
/**
* 日志方法.
*/
protected void log(Object msg) {
System.out.println("数据存取类 Data Accessor: " + msg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -