我正在使用Collections.sort()列表中的大小100000和StackOverFlow錯誤。我怎樣才能擴展它?這裏是代碼:StackOverFlow錯誤,同時處理輸入的大小100000和更多
這是一個大項目的一部分。 Collections.sort()是被反覆叫了過來名單如下:列表大小在每一步下降,過程重複,直到列表的大小變爲1
public static Node buildTree(int d, List<kdtrees.DataPoint> list)
{
if(list.isEmpty())
{
return null;
}
else if(list.size() == 1) // S is singleton, return leaf
{
System.out.println(list.get(list.size() - 1).text);
Node t = new Node(0,0,null,null,list.get(list.size() - 1));
return t;
}
else
{
Collections.sort(list, compByX);
double m = findMedian(d, list);
List<kdtrees.DataPoint> left = new ArrayList<kdtrees.DataPoint>();
List<kdtrees.DataPoint> right = new ArrayList<kdtrees.DataPoint>();
for(DataPoint i: list)
{
if(i.Xvalue < m)
{
left.add(i);
}
else
{
right.add(i);
}
}
Node t = new Node(d, m, buildTree((d+1)%3,left)buildTree((d+1)%3,right), null);
return t ;
}
可能重複的[如何增加到Java堆棧大小?](http://stackoverflow.com/questions/3700459/how-to-increase-to-java-stack-size) – Jeffrey
Collections.sort()應該在100000個項目列表中沒有問題。你確定問題不在其他地方嗎?你能發佈一個完整的例子嗎? – Alex
這是一個大項目的一部分。 Collections.sort()在列表上按迭代方式調用,如下所示:列表大小在每一步都會減少,並且該過程會迭代,直到列表的大小變爲1爲止。 –