【问题标题】:"main" java.lang.OutOfMemoryError in Hashtable sorting and reversing [closed]哈希表排序和反转中的“main”java.lang.OutOfMemoryError [关闭]
【发布时间】:2013-07-25 15:02:10
【问题描述】:

我正在尝试对 Hashtable (ArrayList>) 的 ArrayList 进行排序。一些 Hastable 有 3345588 个条目。当我尝试在 hastable 中排序和分配相反的顺序时,我发现

  Exception in thread "main" java.lang.OutOfMemoryError
      at java.util.Hashtable.newEntry(Hashtable.java:91)
     at java.util.Hashtable.put(Hashtable.java:766)

我的代码如下

public static Hashtable<String, Integer> sortValue(
        Hashtable<String, Integer> t) {
    // Transfer as List and sort it
    ArrayList<Map.Entry<String, Integer>> l = new ArrayList<Entry<String, Integer>>(
            t.entrySet());
    Hashtable<String, Integer> f = new Hashtable<String, Integer>();
    Collections.sort(l, new Comparator<Map.Entry<String, Integer>>() {
        public int compare(Map.Entry<String, Integer> o1,
                Map.Entry<String, Integer> o2) {
            return o1.getValue().compareTo(o2.getValue());
        }
    });
    // create new normalized Hashtable index started from 1 from the most
    // frequent key
    int a = 1;
    for (int i = l.size(); i > 0; i--) {
        f.put(l.get(i - 1).getKey(), a);// getting error here
        a++;
    }
    // System.out.println(l);

    return f;
}

【问题讨论】:

  • 你有什么问题?
  • 您是否因 OutOfMemoryError 而使用 Google 搜索?您不是第一个获得这些知识的人,而且您可以自己找到丰富的知识。

标签: java sorting hashtable


【解决方案1】:

您可以在运行程序时尝试增加虚拟机内存。您可以在此处阅读VM memory setting 详细信息。示例:

java -Xms1024m -Xmx4096m com.sample.HelloWorld

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 2023-03-27
    • 1970-01-01
    • 2013-03-05
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多