1. ホーム
  2. java

[解決済み] 配列が必要ですが、ArrayList<String> が見つかりました。

2022-02-10 19:32:51

質問

私はRubyのバックグラウンドがあり、私は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");
    }
}

それをコンパイルしようとすると、なぜかこのようなエラーが発生します。何が間違っていたのでしょうか?ありがとうございます。

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

解決方法は?

を使用する必要があります。 get() メソッドを使用して、特定のインデックスにある要素を ArrayList . を使用することはできません。 [] を使用して、配列リストの特定のインデックスにある要素を取得することができます。これは配列に対してのみ可能であり files は配列ではなく、ArrayListです。

System.out.println( i + ". Ist: " + files.get(i));

また for のループは少しずれています。 files.size() <= ifalse に入ることはありません。 for のループは全くありません。

このようなものに変更します。

for(int i = 0; i < files.size() ; i++){