您可以一次迭代来完成列表,而无需遍历列表3次。这是一些伪代码:Element best = list.get(0);for (int i = 1; i < list.size(); i++) { Element cur = list.get(i); if (cur.isA() || (cur.isB() && best.isC())) { best = cur; }}// best will have property A if possible, then property B if possible, then C.更准确地说,这将找到具有属性A的最后一个元素(如果存在),否则找到具有属性B的第一个元素(如果存在),否则找到第一个元素。如果用例需要,则可以调整if语句逻辑,以使这些规则更加一致。