我在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/

10-11 02:40
查看更多