可以说我有一个列表,并且试图在其中查找Class元素,从中我仅知道一个(唯一)属性。

public static List<Achievement> listAchievements;
String idAchievement = "5764e35";


这显然不起作用

listAchievements.indexOf(idAchievement );


也不是

Achievement ach(idAchievement);
listAchievements.getIndexOf(ach);


而且解决方法不是很好

 for (Achievement achievement : listAchievements) {
        if (achievement.resourceID().equalsIgnoreCase(idAchievement)) {
            // STUFF
            break;
        }
    }

最佳答案

您拥有的不是解决方法,而是解决方案。

您可以使用类似lambda的行为以及类似的行为来抽象化它……但是最后,如果您试图在列表中搜索具有给定属性的元素,则除了对元素进行迭代外,您无能为力。列出,直到找到具有该给定属性的元素。

如果您需要直接按ID查找附件,如果ID是唯一的(您说是唯一的),则Map<String,Achievement>可能是更好的选择。

07-25 20:29