Java 打印带有增强foor循环的arraylist-错误:找不到方法中已定义的符号和变量

Java 打印带有增强foor循环的arraylist-错误:找不到方法中已定义的符号和变量,java,arraylist,Java,Arraylist,我是java新手,正在尝试编写一个方法,使用增强的for循环打印ArrayList。每当我编译时,fore循环都会给我以下错误: 错误:找不到符号 错误:变量list2已在中定义 方法打印列表(ArrayList,ArrayList) for(字符串列表2:list) 公共静态无效打印列表(ArrayList列表1、ArrayList列表2) { System.out.println(“list1.txt包含:”); for(字符串列表1:list) System.out.println(lis

我是java新手,正在尝试编写一个方法,使用增强的for循环打印ArrayList。每当我编译时,fore循环都会给我以下错误:

错误:找不到符号

错误:变量list2已在中定义 方法打印列表(ArrayList,ArrayList) for(字符串列表2:list)

公共静态无效打印列表(ArrayList列表1、ArrayList列表2)
{
System.out.println(“list1.txt包含:”);
for(字符串列表1:list)
System.out.println(list1+“”);
System.out.println(“list2.txt包含:”);
for(字符串列表2:list)
System.out.println(list2+“”);
}

有人能给我解释一下这些错误是什么意思吗?

for each循环的用法不正确:

for(String list1: list)
这条线有两个问题:

  • 正如错误所说,您正在尝试定义类型为
    String
    的新变量名
    list1
    ,但您在范围中已经有了这样的变量名
  • 没有定义为
    列表
    。基本上语法是:
    for(#项:#集合)
  • 你在找类似的东西

    for(String item : list1)
    
    阅读更多关于


    打印列表的更好方法是使用
    String.join
    ,如图所示


    for each循环的使用不正确:

    for(String list1: list)
    
    这条线有两个问题:

  • 正如错误所说,您正在尝试定义类型为
    String
    的新变量名
    list1
    ,但您在范围中已经有了这样的变量名
  • 没有定义为
    列表
    。基本上语法是:
    for(#项:#集合)
  • 你在找类似的东西

    for(String item : list1)
    
    阅读更多关于


    打印列表的更好方法是使用
    String.join
    ,如图所示


    您已经在
    中为每个
    循环交换了
    列表
    列表1
    (和
    列表2
    )。但是,我首先建议您编程到
    列表
    界面。假设您使用的是Java 8+,我更喜欢
    stream()
    内容并使用
    收集器将其连接起来。像

    public static void printLists(List<String> list1, List<String> list2) {
        System.out.printf("list1.txt contains: %s%n", list1.stream()
                .collect(Collectors.joining(" ")));
        System.out.printf("list2.txt contains: %s%n", list2.stream()
                .collect(Collectors.joining(" ")));
    }
    

    您已经在
    中为每个
    循环交换了
    列表
    列表1
    (和
    列表2
    )。但是,我首先建议您编程到
    列表
    界面。假设您使用的是Java 8+,我更喜欢
    stream()
    内容并使用
    收集器将其连接起来。像

    public static void printLists(List<String> list1, List<String> list2) {
        System.out.printf("list1.txt contains: %s%n", list1.stream()
                .collect(Collectors.joining(" ")));
        System.out.printf("list2.txt contains: %s%n", list2.stream()
                .collect(Collectors.joining(" ")));
    }
    

    谢谢你的回答和澄清!我将查看链接,并在时间锁定消失后接受:)。@starlight-不客气:)让我知道进展情况:)感谢您的回答和澄清!我将检查该链接,并在时间锁定消失后接受:)。@starlight-不客气:)让我知道进展情况:)