我想在Java中执行以下操作:我有一个元素,我想知道它被插入到其他对象集合中的索引是什么(假设它们已经被排序)。
所以,如果我有一个这样的int向量: 1,3,5,7,9 我手里拿着int'2',我知道它的'将来'索引是i = 1,介于值1和3之间。
答案 0 :(得分:5)
// assumes vector is sorted
// and that vector does not yet contain searchedObject
insertionPoint = -1 * Collections.binarySearch(vector,searchedObject) - 1;
Collections.binarySearch()州的定义
<强>返回:强>
搜索键的索引,如果它包含在列表中;否则,( - (插入点) - 1)。插入点定义为键将插入列表的点:第一个元素的索引大于键,或list.size(),如果列表中的所有元素都小于指定的键。请注意,当且仅当找到密钥时,这可以保证返回值>> =。