在某个值之后搜索列表中的最小元素

rya*_*ogo 1 java sorting search list

考虑一个整数列表<1,5,10>(假设按升序排序).

给定一个整数,比方说,key = 6是否有一个实用方法返回之后的最小元素key(在这种情况下它将是10)?

注意:循环遍历列表中的元素并进行比较key是一种显而易见的方法,但我只是想知道是否存在实用方法来做同样的事情:)

小智 6

你考虑过二进制搜索吗?集合有一个您可以使用的binarySearch方法.

从Collections binarySearch文档:

返回:

搜索关键字的索引,如果它包含在列表中; 否则,( - (插入点) - 1).插入点定义为键将插入列表的点:第一个元素的索引大于键,或list.size(),如果列表中的所有元素都小于指定的键.请注意,当且仅当找到密钥时,这可以保证返回值> = 0.

我将让您弄清楚如何使用Collections.binarySearch的返回值来获得所需的答案.

  • @ryan:不,二进制搜索还可以告诉你它必须在列表中的确切位置,如果不存在的话.查看我编辑的binarySearch文档到答案中. (3认同)