首页 > 解决方案 > 代码无法运行,说有问题,只说“找不到符号”

问题描述

试图运行代码,说退出状态 1 Main.java:9: error: cannot find symbol ArrayList result = ArrayList merge(one,two); ^ 符号:变量 ArrayList 位置:主类

和类似的错误...

   import java.util.ArrayList;

   class Main {
              public static void main(String[] args) {
              String[] one = {"in","one","now"};
              String[] two = {"here","in","two"};
              ArrayList<String> result = ArrayList<String> merge(one,two);
              System.out.println(result);
   }

              private static ArrayList<String> merge(String[] words, String[] more){
              ArrayList<String> sentence = new ArrayList<String>();
              for(String w:words) {ArrayList.add(w);}
              for(String w:more) {ArrayList.add(w);}
              return sentence;
   }
 }

应该返回一个包含两个字符串数组内容的 ArrayList,谢谢!:)

标签: javaarraylist

解决方案


首先,ArrayList没有static名为add. 你想在sentence. 并编程到List界面(您也需要导入java.util.List);喜欢

private static List<String> merge(String[] words, String[] more) {
    List<String> sentence = new ArrayList<>();
    for (String w : words) {
        sentence.add(w);
    }
    for (String w : more) {
        sentence.add(w);
    }
    return sentence;
}

此外,main只需调用merge而不添加更多类型信息。喜欢,

List<String> result = merge(one, two);

上面的内容merge也可以用 like 编写Arrays.asList(T...)并结合Collections.addAlllike

private static List<String> merge(String[] words, String[] more) {
    List<String> sentence = new ArrayList<>(Arrays.asList(words));
    sentence.addAll(Arrays.asList(more));
    return sentence;
}

推荐阅读