我有一個項目列表,其中每個項目是一個包含2個公共字符串的簡單類。 我有一個equals方法,簡單地使用兩個字符串的String的equalsIgnoreCase methot。從java清單中移除等於的項目
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;
}
}
}
有沒有更好的方式來做到這一點?
這應該工作 – scibuff 2012-03-20 17:32:37
取決於如何重要的順序是到您的收藏你可以考慮使用一個地圖,像[HashMap中(http://docs.oracle.com/javase/6/docs/api/的java/UTIL/HashMap.html)。這樣你就可以通過鍵查找你的對象。這比使用循環更好,但並不總是必要的。 – Shaded 2012-03-20 17:36:09
列表不是此練習的最佳容器。 – Woot4Moo 2012-03-20 17:37:31