【发布时间】:2018-02-11 06:34:11
【问题描述】:
我有一段代码试图操作数组的内容
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.getValues()内容的引用 -
您将不得不比这更好地解释自己。你想发生什么,正在发生什么?
-
我会尝试: ....
mVal.getValues()有一个值数组 .... 根据我正在修改其内容的条件,在问题中我通过转换为列表,因为数组具有固定大小,但问题是,虽然列表已修改原始mVal.getValues()保持不变 -
您是否尝试过使用有效元素的完整新列表而不是删除无效元素?应该更快,更短的时间完成
标签: java arrays for-loop iterator iteration