public void removeSelected() {
for (Map.Entry<Integer, Boolean> entry : registrosSelecionados.entrySet()){
if (entry.getValue() == true){
int id = entry.getKey();
Iterator<Bean> it = beans.iterator();
while(it.hasNext()){
Bean b = it.next();
if (b.getId().equals(id)){
setBean(b);
deletar();
}
}
}
}
}
public void deletar() {
try {
//Se o bean for nulo então capturamos o bean selecionado no DataTable, se este existir
if (bean == null){
if (dataTable == null){
throw new RuntimeException("O bean é nulo e não há dataTable vinculado ao ManagedBean. A deleção será abortada");
}
bean = (Bean) dataTable.getRowData();
}
beforeRemove();
getBoPadrao().delete((AbstractBean) bean);
addInfoMessage("Registro deletado com sucesso");
beans.remove(bean);
bean = null;
afterRemove();
} catch (BOException e) {
addErrorMessage(e.getMessage());
FacesContext.getCurrentInstance().validationFailed();
} catch (Exception e) {
e.printStackTrace();
logger.error((new StringBuilder()).append("Erro ao deletar: ")
.append(e.getMessage()).toString());
FacesContext.getCurrentInstance().validationFailed();
addErrorMessage((new StringBuilder()).append("Erro ao deletar. ")
.append(e.getMessage()).toString());
}
}
Jan 31, 2015 5:38:32 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
Grave: java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at br.com.jwebbuild.mb.BasicCrudMBImpl.removeSelected(BasicCrudMBImpl.java:226)
我试图编辑我的deletar()方法,把一个迭代器移除元素,但没有工作,错误继续。
public void deletar() {
try {
//Se o bean for nulo então capturamos o bean selecionado no DataTable, se este existir
if (bean == null){
if (dataTable == null){
throw new RuntimeException("O bean é nulo e não há dataTable vinculado ao ManagedBean. A deleção será abortada");
}
bean = (Bean) dataTable.getRowData();
}
beforeRemove();
getBoPadrao().delete((AbstractBean) bean);
addInfoMessage("Registro deletado com sucesso");
Iterator<Bean> it = beans.iterator();
while (it.hasNext()) {
Bean b = it.next();
if (b.equals(bean)) {
it.remove();
}
}
bean = null;
afterRemove();
你说,
嗯,我已经看了其他的帖子,不能解决我的问题。
如果您阅读过其他类似的文章,那么您应该已经知道您只能使用迭代器删除一些您没有做的事情,这正是您必须做的。
public void deltar(Iterator<Bean> it, Bean bean) {
// .....
it.remove();
}
我有一个自定义列表类的应用程序。尝试使用customer参数执行foreach函数时,会发生以下情况: 重要!我不能修改主代码 主要内容: XList类: 错误:
问:反转一个列表(自己做方法,不要用集合) 我收到一个错误< code > UnsupportedOperationException 试验 我不明白为什么在< code>list.remove(0)上出现< code > UnsupportedOperationException ;
实际上,在按下一个按钮后,我有一个方法可以检查itemStorico ArrayList中是否存在从itemModel添加的新项,然后如果该项存在于名为itemModel的新列表中,我将从itemStorico中删除旧项并添加新项,否则只添加新项而不删除旧项。 但我得到以下错误: 下面是我的方法中的代码:
问题内容: 当我运行此代码时,我将抛出ConcurrentModificationException。 当我从列表中删除指定的元素时,列表似乎不知道其大小已更改。 我想知道这是否是集合和删除元素的常见问题? 问题答案: 我相信这是Iterator.remove()方法背后的目的,是能够在迭代时从集合中删除一个元素。 例如:
问题内容: Google Python类| 清单练习- 给定一个数字列表,返回一个列表,其中所有相邻的==元素都已简化为单个元素,因此[1、2、2、3]返回[1、2、3]。您可以创建一个新列表或修改传入的列表。 我使用新列表的解决方案是- 问题甚至暗示可以通过修改传入列表来完成。但是,python文档警告不要在使用for循环迭代列表时修改元素。 我想知道除了遍历列表之外还能做些什么呢?我不是在寻找
问题内容: 我有以下代码: 我得到这个: 这怎么会是正确的方法?Java 15 问题答案: 你的代码有很多问题: 在返回一个固定大小的列表 从API: :返回指定数组支持的固定大小的列表。 你不能做到 你不能。你无法在结构上修改。 Fix 创建一个,支持更快。 关于split正则表达式 从API: :在给定正则表达式的匹配项周围拆分此字符串。 是正则表达式元字符;如果要拆分文字,则必须将其转义为J