我在java有一个列表。我的课有领域,其中之一是:name
。让我们假设:
List<MyClass> mylist = new ArrayList<MyClass>();
MyClass myElement = new MyClass();
myElement.setName("xxx");
因此,如何检查列表中是否有任何包含与
myElement
变量相同名称的元素并检索该变量? 最佳答案
如果您的MyClass
以使两个equals()
实例具有相同名称的方式相等的方式实现MyClass
,则只需执行以下操作:
int index = mylist.indexOf(myElement);
MyClass myListElement = mylist.get(index);
不幸的是,在
equal()
/ Collection
API中没有“获取属于List
的元素”方法,该方法可以更有效地实现。如果您没有这样的
equals()
实现(或者由于某种原因不想要它),那么您将不得不采用无聊的老式方法:MyClass listElement = null;
for (MyClass mc : mylist) {
if (myElement.getName().equals(mc.getName()) {
listElement = mc;
break;
}
}
// if listElement is non-null here, then we found it
关于java - 具有相同名称的元素存在于列表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7926886/