我有一段代码试图在其中处理数组的内容
loopArrayValuesToRemove(mVal.getValues());
在这里,我试图删除值数组的内容
private Values[] loopArrayValuesToRemove(Values[] values) {
List<Values> files = new ArrayList<>(Arrays.asList(values.clone()));
Iterator<Values> iterator = files.iterator();
while(iterator.hasNext()) {
Values mVal = iterator.next();
if(!mVal.isCheckedLocally()){
iterator.remove();
}
// other operations
}
Values[] mvals = files.toArray(new Values[files.size()]);
return mvals;
}
由于即使操作
Values[]
,我仍在创建新对象,mVal.getValues()
内容未修改。这是一个愚蠢的问题,但我对此感到困惑。因为我不能改变
服务器(
mVal.getValues()
)上对arrayList的响应 最佳答案
您将不得不将其编写为
mVal.setValues(loopArrayValuesToRemove(mVal.getValues()));
由于Java按值传递引用,因此您无法在方法内部更改数组本身。内容可以更改,但是如果大小更改无法完成。
关于java - 处理数组的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46013028/