0

是否有更快的方法来检查列表中的项目是否大于、小于或等于某个数字?

或者你只需​​要循环遍历它?我只是好奇是否有为此预先构建的功能。

例子:

列表包含 5、5、10、15、15、20。

我想检查有多少项目实际上 >= 5。所以答案是 6。如果我想检查 >= 15,答案是 3。

4

7 回答 7

1
step 1 : sort the list
step 2 : find the index for desired element
step 3 : print length-index
于 2013-03-08T09:11:41.053 回答
0

我在文档中没有看到任何这样的方法,所以我会说不。您必须遍历列表。如果它已排序,您可以进行二进制搜索以获得更快的结果。

于 2013-03-08T09:02:12.477 回答
0

您需要循环检查每个元素的条件。

于 2013-03-08T09:02:15.680 回答
0

你想排序吗?如果您正在处理数组,则可以使用Arrays.sort()else 如果您正在处理可以使用的集合Collections.sort()

于 2013-03-08T09:02:38.867 回答
0

不,没有预先构建的功能afaik。如果您的列表项不是顺序关键(即您没有制作任何优先级列表或 LIFO/FIFO),您可以在查找元素之前通过排序列表改进搜索。

于 2013-03-08T09:05:46.333 回答
0

您可以对列表进行排序,然后您只需将其第一个和最后一个元素与数字进行比较。

于 2013-03-08T09:06:33.757 回答
0

这就是为什么我要问一个问题,如果集合中当前存在这样的方法。

标准集合 API 中没有这样的方法。

写一个循环。它应该是更快的代码和测试一个 5 行方法来做到这一点,而不是在互联网上搜索一个 3rd 方库。而且您的代码很可能会更快......当然不会更慢。

去做就对了。(我会自己为你编写代码,但听起来你需要练习......)

于 2013-03-08T09:39:26.353 回答