如何在Java中更好地处理HashMap中的数据?

如何在Java中更好地处理HashMap中的数据?,java,data-structures,hashmap,Java,Data Structures,Hashmap,为了用Java开发文本编辑器,用户可以使用对象JTabbedPane打开多个文件。然后,我将这些文件存储在HashMap上。(HashMap的键),应该是文件名。之后,我将在HashMap中打开的文件存储在内存中。现在,我需要管理我的标签。例如,如果用户在其选定的选项卡上,则很明显,用户希望更改文本的字体、保存选定的文件、复制它,等等。为了管理用户选择的选项卡,我需要一个类来从选择的选项卡中获取对象。例如,JTextPane和文件。基本上,我应该做: for(Map.Entry<S

为了用Java开发文本编辑器,用户可以使用对象
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<>();
以获取所选选项卡

关于你的第二个问题:如何处理大数据。。。由于您不希望每次都在内存中读取和复制整个文件,因此需要:

  • 开始和结束文件指针,以了解当前显示的文件块
  • 缓存每个选项卡显示的页面的所有选项卡
  • 当选择选项卡且缓存过期或未覆盖所需信息时打开文件,当不再选择选项卡时(和/或一段时间后)关闭文件。 其他优化是可能的

为什么不使用map.get(key)?欢迎使用SO。不幸的是,你的问题太宽泛了。请阅读和,以获取撰写好问题的提示。编写文本编辑器是一项庞大的工作,如果您还没有处理文件和UI元素的策略,那么就无法提供帮助。为什么不使用map.get(key)?欢迎使用SO。不幸的是,你的问题太宽泛了。请阅读和,以获取撰写好问题的提示。编写文本编辑器是一项庞大的工作,如果您还没有处理文件和UI元素的策略,那么就无法提供帮助。