Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“主要”;哈希表排序和反转中的java.lang.OutOfMemoryError_Java_Sorting_Hashtable - Fatal编程技术网

&引用;“主要”;哈希表排序和反转中的java.lang.OutOfMemoryError

&引用;“主要”;哈希表排序和反转中的java.lang.OutOfMemoryError,java,sorting,hashtable,Java,Sorting,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:7

我正在尝试对哈希表的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;
}
公共静态哈希表sortValue(
哈希表(t){
//作为列表传输并对其进行排序
ArrayList l=新的ArrayList(
t、 entrySet());
Hashtable f=新的Hashtable();
Collections.sort(l,新的Comparator(){
公共整数比较(Map.Entry o1,
地图入口(o2){
返回o1.getValue().compareTo(o2.getValue());
}
});
//从最前面的1开始创建新的规范化哈希表索引
//频繁键
INTA=1;
对于(int i=l.size();i>0;i--){
f、 put(l.get(i-1).getKey(),a);//此处获取错误
a++;
}
//系统输出打印LN(l);
返回f;
}

您可以在运行程序时尝试增加vm内存。你可以在这里详细阅读如何做。样本:

java -Xms1024m -Xmx4096m com.sample.HelloWorld

你的问题是什么?你搜索过OutOfMemoryError吗?你不是第一个得到这些东西的人,你可以自己找到丰富的知识。