Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
目前,我只是使用此:
对于给定的currentId和defaultId,遍历listabc,如果listabc具有currentId,则返回它,否则,如果它具有defaultId,则返回它,否则,返回列表的第一个元素。
请注意,如果listabc同时具有currentId和defaultId,则currentId是应返回的那个。
这段代码看起来有点丑陋,有人可以提供优雅的代码吗?我的大脑停止工作了。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
目前,我只是使用此:
for (ClassX value : listabc) {
if (value.Id.equals(currentId)) {
return value;
} else if (value.Id.equals(defaultId)) {
def = value;
}
}
if (def != null) {
return def;
}
return listabc.get(0);
对于给定的currentId和defaultId,遍历listabc,如果listabc具有currentId,则返回它,否则,如果它具有defaultId,则返回它,否则,返回列表的第一个元素。
请注意,如果listabc同时具有currentId和defaultId,则currentId是应返回的那个。
这段代码看起来有点丑陋,有人可以提供优雅的代码吗?我的大脑停止工作了。
最佳答案
我会写得更整洁一些:
ClassX def;
for (ClassX value : listabc) {
if (value.Id.equals(currentId)) return value;
if (value.Id.equals(defaultId)) def = value;
}
return def == null ? listabc.get(0) : def;
10-08 17:06