关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
三年前关门了。
改进这个问题
我怎样才能得到 List<Object> filteredList
谁的身份证( Object.id
)包含在给定的 List<id> idsList
从另一个 List<Object>allObjects
. 考虑到适度的数据量,从时间上来说,解决这个问题的有效方法是什么。
我用的是java6
关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
三年前关门了。
改进这个问题
我怎样才能得到 List<Object> filteredList
谁的身份证( Object.id
)包含在给定的 List<id> idsList
从另一个 List<Object>allObjects
. 考虑到适度的数据量,从时间上来说,解决这个问题的有效方法是什么。
我用的是java6
1条答案
按热度按时间5t7ly7z51#
我不想重复这两个列表太多次
为什么?过早的优化是件坏事。首先测试它,衡量它是否足够有效,如果存在问题就解决问题。
您可以使用一个简单的过滤器通过流来实现这一点:
使用streams的好处是,您可以稍后将其并行化。
另一个优化是检查数据结构的使用情况。正如seelenvirtuose指出的,使用
HashSet
将降低contains
从o(n)到o(1):如果做不到这一点,您还可以通过复制
List
变成一个HashSet
过滤前:但是如果您可以控制数据结构,只需使用
HashSet
从一开始。