0
比方说,我有问题与Java递归
Person Friend
--------------------
FriendA FriendB
FriendB FriendC
我想通过列表来遍历并获得最终的朋友一个文件的数据集。到目前为止,我尝试过这样做,但它不起作用,当我尝试其他任何东西时,出现堆栈溢出错误。
public class Pair {
public String key;
public String value;
public Pair(String key, String value)
{
this.key = key;
this.value = value;
}
}
import java.io.*;
import java.util.*;
public class OpenFile
{
public static String checkFriend (String name, final ArrayList<Pair> pair)
{
String new_friend_name = null;
for (Pair p : pair)
{
if (p.key == name)
{
new_friend_name = (String) p.value;
}
}
return new_friend_name;
}
public static String getUltimateFriend(String name, final ArrayList<Pair> pair)
{
String friend = null;
if (checkFriend(name, pair) == null) return name;
while (checkFriend(name, pair) != null)
{
friend = checkFriend(name, pair);
}
return friend;
//return new_friend_name;
}
public static void main(String[] args) throws Exception
{
FileReader fr = new FileReader("C:\\Users\\Files\\Desktop\\Java Programs\\data\\data.txt");
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
String[] var = null;
ArrayList<Pair> pair = new ArrayList<Pair>();
System.out.println("my pair output from a loop");
for (Pair p : pair)
{
System.out.println(p.key + " is friends with " + getUltimateFriend(p.key,pair));
}
br.close();
fr.close();
}
}
我试图递归,但我正在逐渐StackOverflow的错误。
任何帮助,将不胜感激。
异常的完整堆栈跟踪是什么?我不希望这会抛出一个StackOverflow,因为它实际上不是递归的。 – Carcigenicate
我没有改变它从递归。这是非递归版本 – Srinivas
你应该更清楚。如果上面的代码不是递归的,那么关于递归和堆栈溢出的问题的整个部分是不相关的。那你甚至还有什么问题? – Carcigenicate