dataaccessor.java
来自「《Java核心技术应用开发》电子工业出版社书籍源代码」· Java 代码 · 共 112 行
JAVA
112 行
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 + =
减小字号Ctrl + -
显示快捷键?