Java 是否有可能消除该错误?(超出内存限制)

Java 是否有可能消除该错误?(超出内存限制),java,algorithm,data-structures,compiler-errors,core,Java,Algorithm,Data Structures,Compiler Errors,Core,这里有一个问题: 给出一个由成对的出发和到达机场[从,到]表示的机票列表,按顺序重建行程。所有的票都属于一个从肯尼迪机场出发的人。因此,行程必须从肯尼迪机场开始 注: 如果存在多个有效的行程,则应返回作为单个字符串读取时具有最小词法顺序的行程。例如,行程[“JFK”,“LGA”]的词序比[“JFK”,“LGB”]小。 所有机场都用三个大写字母(IATA代码)表示。 您可以假设所有机票至少构成一个有效行程 不幸的是,我总是犯这些错误 第63行:错误:找不到符号[在MainClass.java中]

这里有一个问题: 给出一个由成对的出发和到达机场[从,到]表示的机票列表,按顺序重建行程。所有的票都属于一个从肯尼迪机场出发的人。因此,行程必须从肯尼迪机场开始

注:

如果存在多个有效的行程,则应返回作为单个字符串读取时具有最小词法顺序的行程。例如,行程[“JFK”,“LGA”]的词序比[“JFK”,“LGB”]小。 所有机场都用三个大写字母(IATA代码)表示。 您可以假设所有机票至少构成一个有效行程

不幸的是,我总是犯这些错误

第63行:错误:找不到符号[在MainClass.java中] 添加(stringToStringList(cols.toString()); ^符号:方法stringToStringList(字符串)位置:类Main类第83行:错误:在中找不到符号 MainClass.java] List>tickets=stringToString2dList(行); ^符号:方法stringToString2dList(字符串)位置:class Main class 2错误

这是我的密码:

class Solution {
    class Checker implements Comparator<String>{
        @Override
        public int compare(String o1, String o2) {
            return o1.compareToIgnoreCase(o2);
        }
    }
    public List<String> findItinerary(List<List<String>> tickets){
        String begin="JFK";
        final String example=begin;
        List<String> solution = new ArrayList<>();
        long counter=tickets.stream().filter(lister->lister.get(0).equals(example)).count();
        List<String> lexic=tickets.stream().filter(lister->lister.get(0).equals("JFK")).map(p->p.get(1)).distinct().collect(Collectors.toList());
        Comparator<String> comparator =new Checker();
        lexic.sort(comparator);
        solution.add(begin);
        begin=lexic.get(0);
        System.out.println(counter);
        for(int i=0;i<tickets.size();i++) {
            if(tickets.get(i).get(0).equals(begin)) {
                if(!solution.contains(begin)) {
                    solution.add(begin);
                }
                begin=tickets.get(i).get(1);
                solution.add(begin);
                i=-1;
            }
        }
        return solution;
    }

}

public class MainClass {
    public static String[] stringToStringArray(String line) {
        JsonArray jsonArray = JsonArray.readFrom(line);
        String[] arr = new String[jsonArray.size()];
        for (int i = 0; i < arr.length; i++) {
          arr[i] = jsonArray.get(i).asString();
        }
        return arr;
    }

    public static List<List<String>> stringToString2dArray(String input) {
        JsonArray jsonArray = JsonArray.readFrom(input);
        if (jsonArray.size() == 0) {
          return new ArrayList<List<String>>();
        }
        List<List<String>> list = new ArrayList<>(jsonArray.size());
        for (int i = 0; i < jsonArray.size(); i++) {
          JsonArray cols = jsonArray.get(i).asArray();
          list.add(stringToStringList(cols.toString()));
        }
        return list;
    }

    public static String stringListToString(List<String> stringList) {
        StringBuilder sb = new StringBuilder("[");
        for (String item : stringList) {
            sb.append(item);
            sb.append(",");
        }

        sb.setCharAt(sb.length() - 1, ']');
        return sb.toString();
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = in.readLine()) != null) {
            List<List<String>> tickets = stringToString2dList(line);

            List<String> ret = new Solution().findItinerary(tickets);

            String out = stringListToString(ret);

            System.out.print(out);
        }
    }
}
类解决方案{
类检查器实现了比较器{
@凌驾
公共整数比较(字符串o1、字符串o2){
返回o1.比较信号(o2);
}
}
公共清单金融资料(清单票据){
字符串begin=“JFK”;
最后一个字符串示例=开始;
列表解决方案=新建ArrayList();
长计数器=tickets.stream().filter(lister->lister.get(0).equals(示例)).count();
List lexic=tickets.stream().filter(lister->lister.get(0).equals(“JFK”).map(p->p.get(1)).distinct().collect(Collectors.toList());
比较器比较器=新检查器();
排序(比较器);
解决方案。添加(开始);
begin=lexic.get(0);
系统输出打印项次(计数器);

对于(int i=0;i您似乎没有
stringToStringList
方法。您必须添加一个,但幸运的是,重用您已有的
stringtostringray
方法应该很容易:

public静态字符串[]stringToStringList(字符串行){
返回数组.asList(stringToStringArray(line));
}

您似乎真的没有
stringToStringList
方法。您必须添加一个,但幸运的是,重用您已有的
stringtostringray
方法应该很容易:

public静态字符串[]stringToStringList(字符串行){
返回数组.asList(stringToStringArray(line));
}

您只是试图调用不存在的方法。请仔细阅读消息。查看您正在调用的方法。然后查看您定义的方法。这些错误意味着在您的类
MainClass
中没有名为
stringToStringList
stringToString2dList
的方法。查看您的类确实没有这样的方法,但是您确实有名为
stringtostringaray
stringToString2dArray
的方法。解决方案:使用正确的方法名称。请更改您的问题标题以反映您所面临的实际问题。就目前而言,这没有任何好处。您只是试图调用不存在的方法。仔细阅读消息。查看您正在调用的方法。然后查看您定义的方法。错误意味着在您的类
MainClass
中没有名为
stringToStringList
stringToString2dList
的方法。查看您的类,确实没有此类方法,但您确实有方法名d
StringToStringGarray
stringToString2dArray
。解决方案:使用正确的方法名称。请更改问题标题以反映您面临的实际问题。就目前情况而言,这没有任何好处。