【发布时间】:2013-11-25 21:49:25
【问题描述】:
有一个 List<Integer> tabulist 包含值 [2,0,5]。
此外,还有一个List this.getRoutes(),其中包含密钥[0,1,2,3,4,5]。
我需要从this.getRoutes() 中删除元素[2,0,5]。
因此,我必须在this.getRoutes() 中获得以下条目:
[1,3,4]
这是我的代码:
iter = this.getRoutes().iterator();
while(iter.hasNext())
{
Route r = iter.next();
if (tabulist.contains(r.getRouteKey()))
{
iter.remove();
}
}
问题是r.getRouteKey() 始终为0。因此,我总是从this.getRoutes() 中删除第一个元素。我不明白为什么迭代器不移动到 [1,2,3,4,5]。
如何解决这个问题?也许我也应该从tabulist 中删除值?
【问题讨论】:
-
routes = this.getRoutes(); routes.removeAll(tabulist)有什么问题? -
@raina77ow 因为 List
路由包含 Route 类的对象。我需要删除键“rKey”上的对象。 6个对象中“rKey”的值是[0,1,2,3,4,5]。所以,我需要删除那些“rKey”等于[2,0,5](tablist)的对象。 -
我不知道为什么迭代器不前进,但是你为什么不创建一个接受两个参数的函数:originalValues 和 valuesToRemove?在这个方法中创建一个新的结果 List
并且只用你想要的值填充它。 -
@Sigur:你能举个例子吗?