Java 更改arraylist中的元素

Java 更改arraylist中的元素,java,Java,如果该语句为true,如何更改ArrayList的元素 ArrayList<String> list; public void moves(int row , int column , int value) { if (list.get(row).charAt(column) == '.') { //change this place to the value } } ArrayList列表; 公共无效移动(int行、int列、int值){ if(list.get

如果该语句为true,如何更改ArrayList的元素

ArrayList<String> list;

public void moves(int row , int column , int value) {
  if (list.get(row).charAt(column) == '.') {
    //change this place to the value
  }
}
ArrayList列表;
公共无效移动(int行、int列、int值){
if(list.get(row.charAt(column)='.')){
//将此位置更改为值
}
}

字符串
是不可变的。但是,如果我理解您的问题,您将希望将值转换为
char
。基本上,我会先将元素转换为
char[]
,然后在修改后更新
列表。像

public void moves(int row, int column, int value) {
    char[] chars = list.get(row).toCharArray();
    if (chars[column] == '.') {
        chars[column] = (char) value;
        list.set(row, new String(chars));
    }
}
您可以首先使用
ArrayList
中的字符串创建,然后调用
setCharAt
。最后,将新字符串设置回数组列表

StringBuilder sb = new StringBuilder(list.get(row));
sb.setCharAt(column, (char)value);
list.set(row, sb.toString());
如果使用
ArrayList
,则执行此操作可能更容易


有人已经回答了我需要的解决方案,不过谢谢你的意见。我会在将来努力让自己更清楚@GhostCat
StringBuilder sb = new StringBuilder(list.get(row));
sb.setCharAt(column, (char)value);
list.set(row, sb.toString());
if (nestedList.get(row).get(column) == '.') {
    nestedList.get(row).set(column, (char)value);
}