Java 更改arraylist中的元素
如果该语句为true,如何更改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
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);
}