怎么对list里面的元素进行修改

我在对String的list其中某个元素进行追加操作,但是操作失败了,这是为什么

    public static void main(String[] args) {
        String r = "<template>";
        List<String> a = new ArrayList<>();
        a.add(r);
        a.add("<div>");
        //使用迭代器 遍历   每个集合对象都有自己的迭代器
        Iterator<String> it = a.iterator();
        //  泛型指的是 迭代出 元素的数据类型
        while(it.hasNext()){ //判断是否有迭代元素
            String s = it.next();//获取迭代出的元素
            StringBuffer stringBuffer = new StringBuffer(s);
            if (s.equals("<template>")) {
                stringBuffer.append(System.lineSeparator());
                stringBuffer.append(generateHTMLSnippet());
            }
            System.out.println(stringBuffer);
        }
        System.out.println("输出字符串:" + a);
    }
}

输出的结果还是【“template”,"

"】,实际想输出【“template,span”,

给你改造下:
jdk需要8及以上。
代码:

img


运行结果:

img

你没将修改后的 stringBuffer 放回 list 中。
可用索引访问 list,取出来修改,删除原对象,放入修改后的新对象。
String s = a.get(i);
a.remove(s); //或者 a.remove(i);
// 修改s
a.add(i, s);
这样 list 里面的对象就修改了。



```java
public static void main(String[] args) {  
    String r = "<template>";  
    List<String> a = new ArrayList<>();  
    a.add(r);  
    a.add("<div>");  
    Iterator<String> it = a.iterator();  
    while(it.hasNext()){  
        String s = it.next();  
        StringBuffer stringBuffer = new StringBuffer(s);  
        if (s.equals("<template>")) {  
            stringBuffer.append(System.lineSeparator());  
            stringBuffer.append(generateHTMLSnippet());  
        } else if (s.equals("<span>")) {  
            stringBuffer.append(System.lineSeparator());  
            stringBuffer.append(generateHTMLSnippet());  
        }  
        System.out.println(stringBuffer);  
    }  
    System.out.println("输出字符串:" + a);  
}

```