【发布时间】:2012-03-21 02:09:39
【问题描述】:
我有一个项目列表,其中每个项目都是一个包含 2 个公共字符串的简单类。 我有一个 equals 方法,它对两个字符串都使用 String 的 equalsIgnoreCase 方法。
public class data
{
public String a;
public String b;
public boolean equals(data d)
{
if(a.equalsIgnoreCase(d.a) && b.equalsIgnoreCase(d.b))
{
return true;
}
else
{
return false;
}
}
}
我希望能够删除一个元素,即使它与列表中的元素不同但等于它。
现在我正在这样做:
public void remove(data dataToRemove)
{
for(data i : _list)
{
if(i.equals(dataToRemove))
{
_list.remove(i);
break;
}
}
}
有没有更好的方法来做到这一点?
【问题讨论】:
-
根据订单对您的收藏的重要性,您可以考虑使用地图,例如HashMap。这样你就可以通过键来查找你的对象。这比使用循环要好,但并不总是必要的。
-
列表不是本练习的最佳容器。
标签: java collections