需要数组,但找到了ArrayList <String>

Joh*_*ith 4 java

我有一个红宝石背景和我新的java我写了一个基本的程序,但不知怎的,我得到一个错误,我无法修复!我的代码:

import java.util.ArrayList;

public class Music {

    private ArrayList<String> files;


    public static void main(String args[]){

        Music a = new Music();
        a.addFile("Chasen Paper");
        a.addFile("Mama");
        a.addFile("Hell Yes");
        a.removeFile("Hell Yes");
    }
    public Music(){
      files = new ArrayList<String>();
    }

    public void addFile(String filename){
        files.add(filename);
    }

    public void returnFiles(){
        for(int i = 0; files.size() <= i; i++){
            System.out.println( i + ". Ist: " + files[i]);
        }

    }

    public void removeFile(String filename){
        System.out.println("Vorher gab es " + files.size() + " Dateien");
        files.remove(filename);
        System.out.println("Jetzt gibt es " + files.size() + " Dateien");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我得到了某种错误:我错了什么?谢谢!

Music.java:26: error: array required, but ArrayList<String> found
            System.out.println( i + ". Ist: " + files[i]);
Run Code Online (Sandbox Code Playgroud)

Sud*_*hul 14

您需要使用该get()方法从一个特定的索引获取元素ArrayList.您不能使用[]在arraylist中的特定索引处获取元素.它只适用于数组,files而不是数组,而是ArrayList.

System.out.println( i + ". Ist: " + files.get(i));
Run Code Online (Sandbox Code Playgroud)

此外,for循环中的条件有点偏.files.size() <= ifalse,因此,它根本不进入for循环.

把它改成这样的东西.

for(int i = 0; i < files.size() ; i++){
Run Code Online (Sandbox Code Playgroud)