英文:
How to check if aspecified object exists in a given list of object or not with java
问题
我正在使用Java 11,想要检查一个对象是否存在于对象列表中,我使用了以下代码:
List<MenuDTO> menuDTO = new ArrayList<>();
MenuDTO menu = menuData.findByIdMenu(menuItemDTO.getMenuid());
if(menuDTO.contains(menu)) {
menuItemResult.add(menuItemDTO);
menu.setMenuitems(menuItemResult);
}
但是它始终返回false,即使列表中包含该元素。
英文:
I am using java 11 and i want to check if a object exist in list of object i use
List<MenuDTO> menuDTO=new ArrayList<>();
MenuDTO menu=menuData.findByIdMenu(menuItemDTO.getMenuid());
if(menuDTO.contains(menu)){
menuItemResult.add(menuItemDTO);
menu.setMenuitems(menuItemResult);
}
But it return always false even the list contain the element
答案1
得分: 2
我不知道这是否是您正在寻找的内容,但或许这能有所帮助:
List<MenuDTO> menuDTO = new ArrayList<>();
MenuDTO menu = menuData.findByIdMenu(menuItemDTO.getMenuid());
boolean doesExists = menuDTO.stream().anyMatch(menuElement -> menuElement.getMenuId() == menu.getMenuId());
if (doesExists) {
menuItemResult.add(menuItemDTO);
menu.setMenuitems(menuItemResult);
}
英文:
I don't know if this is what you are looking for, but maybe this can help:
List<MenuDTO> menuDTO=new ArrayList<>();
MenuDTO menu=menuData.findByIdMenu(menuItemDTO.getMenuid());
boolean doesExists = menuDTO.stream().anyMatch(menuElement -> menuElement.getMenuId() == menu.getMenuId());
if(doesExists){
menuItemResult.add(menuItemDTO);
menu.setMenuitems(menuItemResult);
}
答案2
得分: 2
Java集合使用contains
方法使用对象的equals
方法来确定指定的对象是否在集合中,因此您需要为集合中使用的对象实现这个方法。
以下是关于如何在对象上实现equals
和hashCode
方法的一些指南:
英文:
Java collections contains
use object equals
methods to determine if specified object is in the collection, so you need to implement it for objects that you use in collections.
Here is some guide on how to implement equals
and hashCode
methods on objects:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论