java - ArrayList 中的 set()

标签 java arraylist

我是 Java 新手,请帮助我。

我的程序是

import java.util.*;
import java.lang.*;
class Test
{
    public static void main(String[] args)
    {
        ArrayList al=new ArrayList();
        al.add("a");
        al.add("b");
        for(int i=1;i<=10;i++)
        {
            al.add(i);
        }
        al.remove("a");
        al.set(1,"c");
        for(int j=3;j<=al.size();j++)
        {
            al.set(j,"z");
        }

        System.out.println(al);
    }
};

以上任何错误.........请帮助我

最佳答案

a) 你需要公开这个类来运行它:

public class Test
{

b) 最后一个分号是语法错误 不,不是,这只是不必要的干扰。

c) 这失败了 IndexOutOfBoundsException :

for(int j = 3; j <= al.size(); j++){
    al.set(j, "z");
}

它需要是:

for(int j = 3; j < al.size(); j++){
    al.set(j, "z");
}

解释:列表索引是从零开始的,所以n个元素的列表的最高位置是n-1


顺便说一句,上面的代码可以写成这样更优雅的方式:

Collections.fill(al.subList(3, al.size()), "z");

引用:

关于java - ArrayList 中的 set(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5336491/

相关文章:

java - 当我们更新操作系统时,Android 的 Build 类会受到影响吗?

java - 使用本地 wsdl 文件和绑定(bind)文件以及 maven 生成 WSDL 的 Java 客户端示例?

java - 按投影字段分组时引用无效

java - java中的哈希表覆盖问题

java - 当使用 Math.sqrt() 作为参数时,List contains 方法返回 false

java - Coldfusion 读取不带扩展名的 XML HTTP

java - 同步块(synchronized block)程序结果与同步方法不同

java - ArrayList 的 ArrayList,默认值

java - 在每个元素上调用 remove() 以清空 ArrayList

java - 更改存在对象的 arraylist 字段的值