gpt4 book ai didi

java - 处理大小为 100000 及以上的输入时出现 StackOverFlow 错误

转载 作者:行者123 更新时间:2023-11-30 06:26:33 25 4
gpt4 key购买 nike

我在大小为 100000 的列表中使用 Collections.sort() 并收到 StackOverFlow 错误。我怎样才能扩大规模?这是代码:

这是一个大项目的一部分。 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 ;

最佳答案

看起来问题不在 Collections.sort 中,而是您错过了列表大小不会在每个步骤中减少的场景. (具体来说:如果列表的所有元素都相等会发生什么?)

堆栈溢出是由您的代码引起的,而不是Collections.sort

关于java - 处理大小为 100000 及以上的输入时出现 StackOverFlow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com