如何在Java中更好地处理HashMap中的数据?
为了用Java开发文本编辑器,用户可以使用对象如何在Java中更好地处理HashMap中的数据?,java,data-structures,hashmap,Java,Data Structures,Hashmap,为了用Java开发文本编辑器,用户可以使用对象JTabbedPane打开多个文件。然后,我将这些文件存储在HashMap上。(HashMap的键),应该是文件名。之后,我将在HashMap中打开的文件存储在内存中。现在,我需要管理我的标签。例如,如果用户在其选定的选项卡上,则很明显,用户希望更改文本的字体、保存选定的文件、复制它,等等。为了管理用户选择的选项卡,我需要一个类来从选择的选项卡中获取对象。例如,JTextPane和文件。基本上,我应该做: for(Map.Entry<S
JTabbedPane
打开多个文件。然后,我将这些文件存储在HashMap
上。(HashMap的键),应该是文件名。之后,我将在HashMap
中打开的文件存储在内存中。现在,我需要管理我的标签。例如,如果用户在其选定的选项卡上,则很明显,用户希望更改文本的字体、保存选定的文件、复制它,等等。为了管理用户选择的选项卡,我需要一个类来从选择的选项卡中获取对象。例如,JTextPane
和文件
。基本上,我应该做:
for(Map.Entry<String, TabManager> entry: HashMap.entry)
{
String key = entry.getKey();
tabManager = entry.getValue();
if(tab.getTabSelected().equals(key))
{
// resquest objects from tab selected by the user
this.container = tabManager.getJTextPane();
this.file = tabManager.getFile();
}
}
for(Map.Entry:HashMap.Entry)
{
String key=entry.getKey();
tabManager=entry.getValue();
if(tab.getTabSelected().equals(键))
{
//从用户选择的选项卡重新请求对象
this.container=tabManager.getJTextPane();
this.file=tabManager.getFile();
}
}
我手上有用户选择的选项卡中的对象。现在,我来处理它。问题是:
- 我如何处理如此大量的数据
- 一直以来,我都在做循环,以知道用户选择了哪个选项卡
我如何处理这些数据?我看不出你的地图名是什么。。。但假设你有这样的东西:
Map<String, TabManager> map = new HashMap<>();
以获取所选选项卡
关于你的第二个问题:如何处理大数据。。。由于您不希望每次都在内存中读取和复制整个文件,因此需要:
- 开始和结束文件指针,以了解当前显示的文件块
- 缓存每个选项卡显示的页面的所有选项卡
- 当选择选项卡且缓存过期或未覆盖所需信息时打开文件,当不再选择选项卡时(和/或一段时间后)关闭文件。 其他优化是可能的
Map<String, TabManager> map = new HashMap<>();
以获取所选选项卡
关于你的第二个问题:如何处理大数据。。。由于您不希望每次都在内存中读取和复制整个文件,因此需要:
- 开始和结束文件指针,以了解当前显示的文件块
- 缓存每个选项卡显示的页面的所有选项卡
- 当选择选项卡且缓存过期或未覆盖所需信息时打开文件,当不再选择选项卡时(和/或一段时间后)关闭文件。 其他优化是可能的