java - remove() 方法太慢

标签 java list map

我在读取内存跟踪时遇到问题。我已阅读并在 map 上保存了页面及其引用

map 结构:

    Map<Integer, List<Integer>> map = new HashMap<>();

然后我再次读取文件并从整数列表中删除引用

FileReader arq = new FileReader(new File(Path));
BufferedReader reader = new BufferedReader(arq, 41943040);
while ( (std = reader.readLine()) != null ) {
        requestedPage = Integer.parseInt(std, 16);
        //do something
        M.map.get(requestedPage).remove(0));
    }

问题是删除这些引用花费的时间太长,对于大的跟踪,删除引用需要数小时。有人有其他解决方案吗?

谢谢!

最佳答案

我认为如果 remove(0) 是您要在此列表上进行的唯一删除操作,那么 LinkedList 是一个更好的数据结构:

尝试:

Map<Integer, LinkedList<Integer>> map = new HashMap<Integer, LinkedList<Integer>>();

关于java - remove() 方法太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134717/

相关文章:

python - 枚举是迭代列表中字符串的字母而不是元素

c++ - 使用 "approximate"STL 贴图

从 Applet 调用 Web 服务时出现 java InvokingTargetException

java - 禁用 apache HTTP 客户端的日志记录?

java - 如何改进使用 BasicDataSource 对象的 Java 应用程序?

list - F# 使用函数从列表中删除重复项

list - Prolog 删除 : doesn't delete all elements that unify with Element

java - Java中的有序列表映射实现

iphone - 从 iOS 6 中的应用程序映射应用程序后如何返回我的应用程序

java - 重写方法的注释反射