⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataaccessor.java

📁 《Java核心技术应用开发》电子工业出版社书籍源代码
💻 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 + -