我想在Java中执行以下操作:我有一个元素,我想知道如果它被插入到其他对象的集合中(假设它们已经排序),它的索引是什么。
所以如果我有一个像这样的整数 vector : 1,3,5,7,9 我手头有 int '2',我知道它的'可能'索引是 i=1,介于值 1 和 3 之间。
最佳答案
// assumes vector is sorted
// and that vector does not yet contain searchedObject
insertionPoint = -1 * Collections.binarySearch(vector,searchedObject) - 1;
Collections.binarySearch() 的定义州
返回:
搜索关键字的索引(如果它包含在列表中);否则,(-(插入点) - 1)。插入点定义为将键插入到列表中的点:如果列表中的所有元素都小于指定键,则为大于键的第一个元素的索引,或 list.size()。请注意,这保证了当且仅当找到 key 时返回值>= 0。
关于Java vector : How to find out the would-be index of an item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045817/