无法从arraylist中删除此字符串

use*_*881 -3 java arrays arraylist

似乎无法做到这一点.我错过了什么?

发现3个错误:

文件:K:\ CustomerLister2.java [line:16]错误:类型java.util.ArrayList文件的方法长度()未定义:

K:\ CustomerLister2.java [line:18]错误:表达式的类型必须是数组类型,但它解析为

java.util.ArrayList文件:K:\ CustomerLister2.java [line:20]错误:表达式的类型必须是数组类型,但它解析为java.util.ArrayList

import java.util.ArrayList;

public class CustomerLister2 {
    public static void main (String[] args) {
        ArrayList<String> name = new ArrayList<String>();

        name.add("Chris");
        name.add("Lois");
        name.add("Meg");
        name.add("Meg");
        name.add("Brain");
        name.add("Peter");
        name.add("Stewie");

        for (int i = 0;  i < name.length(); i++) {
            if (name[i].equals("Meg")) {
                name[i] = null;
                break;
            }     
            for(String names: name) {
                System.out.println(names);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*Lin 5

对于java.util.ArrayList类型,方法length()未定义

你要:

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

表达式的类型必须是数组类型,但它解析为java.util.ArrayList

你要:

name.get(i)
Run Code Online (Sandbox Code Playgroud)

name.remove(i);
name.set(i,"");
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其转换为数组:

String[] nameArray = name.toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)

并使用nameArray而不是name(而.legnth不是.length()).