【发布时间】:2018-03-04 11:35:01
【问题描述】:
我有一个对象列表,每个对象都有一个 ID。我有第二个列表,它只是媒体 ID 的列表。我想从第一个列表中删除与第二个列表中包含的 mediaID 不匹配的对象。什么是解决这个问题的有效方法?我能想到的唯一方法是嵌套 for 循环,但这似乎效率低下。
这是我的实现。请注意,“items”是第一个列表,包含 MediaDetailsItem 对象,其中每个对象都有一个特定的 mediaId。第二个列表是 mediaIds。
List<MediaDetailsItem> shortenedList = new ArrayList<MediaDetailsItem>();
for(MediaDetailsItem item : items){
for(String id : mediaIds){
if(item.getMediaId().equals(id)){
shortenedList.add(item);
break;
}
}
}
items.clear();
items.addAll(shortenedList);
【问题讨论】:
-
如果这段代码运行良好,那么这个问题在 Stack Overflow 上是题外话,但可能对我们的姊妹网站 Code Review 有好处。
-
@JoeC 好的,谢谢,我会把它移到那里。