首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

堆栈溢出,该怎么解决

2012-04-22 
堆栈溢出,该如何解决?public static void Relevance(String[][] MineSweepingList,String[][] MineSweepin

堆栈溢出,该如何解决?
public static void Relevance(String[][] MineSweepingList,
String[][] MineSweepingList2, int row, int list, long size,
String[] recurrenceOfCondition, int numberOfROC) {
MineSweepingList2[row][list] = "口";
if (list + 1 < size % 100) {
if (MineSweepingList[row][list + 1] == " 0 "
&& MineSweepingList2[row][list + 1] != "口") {
MineSweepingList2[row][list + 1] = "口";
Relevance2(MineSweepingList, MineSweepingList2, row, list + 1,
size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row][list + 1] = MineSweepingList[row][list + 1];
}
if (row + 1 < size / 100) {
if (MineSweepingList[row + 1][list] == " 0 "
&& MineSweepingList2[row + 1][list] != "口") {
MineSweepingList2[row + 1][list] = "口";
Relevance2(MineSweepingList, MineSweepingList2, row + 1, list,
size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row + 1][list] = MineSweepingList[row + 1][list];
}
if (list - 1 >= 0) {
if (MineSweepingList[row][list - 1] == " 0 "
&& MineSweepingList2[row][list - 1] != "口") {
MineSweepingList2[row][list - 1] = "口";
Relevance2(MineSweepingList, MineSweepingList2, row, list - 1,
size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row][list - 1] = MineSweepingList[row][list - 1];
}
if (row - 1 >= 0) {
if (MineSweepingList[row - 1][list] == " 0 "&&MineSweepingList2[row - 1][list] != "口"){
MineSweepingList2[row - 1][list] = "口";
Relevance2(MineSweepingList, MineSweepingList2, row-1, list - 1,
size, recurrenceOfCondition, numberOfROC);
}
else
MineSweepingList2[row - 1][list] = MineSweepingList[row - 1][list];
}
}

public static void Relevance2(String[][] MineSweepingList,
String[][] MineSweepingList2, int row, int list, long size,
String[] recurrenceOfCondition, int numberOfROC) {
MineSweepingList2[row][list] = "口";
if (row + 1 < size / 100 && list + 1 < size % 100) {
if (MineSweepingList[row + 1][list + 1] == " 0 "
&& MineSweepingList2[row + 1][list + 1] != "口") {
MineSweepingList2[row + 1][list + 1] = "口";
Relevance(MineSweepingList, MineSweepingList2, row + 1,
list + 1, size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row + 1][list + 1] = MineSweepingList[row + 1][list + 1];
}
if (row + 1 < size / 100 && list - 1 >= 0) {
if (MineSweepingList[row + 1][list - 1] == " 0 "
&& MineSweepingList2[row + 1][list - 1] != "口") {
MineSweepingList2[row + 1][list - 1] = "口";
Relevance(MineSweepingList, MineSweepingList2, row + 1,
list - 1, size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row + 1][list - 1] = MineSweepingList[row + 1][list - 1];
}
if (row - 1 >= 0 && list - 1 >= 0) {
if (MineSweepingList[row - 1][list - 1] == " 0 "
&& MineSweepingList2[row - 1][row - 1] != "口") {
MineSweepingList2[row - 1][row - 1] = "口";
Relevance(MineSweepingList, MineSweepingList2, row - 1,
list - 1, size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row - 1][row - 1] = MineSweepingList[row - 1][list - 1];
}
if (row - 1 >= 0 && list + 1 < size % 100) {
if (MineSweepingList[row - 1][list + 1] == " 0 "
&& MineSweepingList2[row - 1][list + 1] != "口") {
MineSweepingList2[row - 1][list + 1] = "口";


Relevance(MineSweepingList, MineSweepingList2, row - 1,
list + 1, size, recurrenceOfCondition, numberOfROC);
} else
MineSweepingList2[row - 1][list + 1] = MineSweepingList[row - 1][list + 1];
}
}
显示这样的溢出错误:java.lang.ArrayIndexOutOfBoundsException和这样的错误:java.lang.StackOverflowError 不是同时出现,多次运行后只有这两个错误。 这是一段代码的两个方法,该如何解决。

[解决办法]
数据越界了,好好检查代码吧。加个断电跟踪下。

热点排行