使用 Collections.binarySearch() 查找排序数组中元素的最后位置

Find Last Position of Element in Sorted Array using Collections.binarySearch()

我可以先使用 Collections.binarySearch 找到,但如何找到元素的最后位置。提前谢谢你:)

List < String > nums = new ArrayList < String > ();
    nums.add("A/tea");
    nums.add("C/see");
    nums.add("C/sEa");
    nums.add("C/SEa");
    nums.add("C/clock");
    nums.add("aep");

   Collections.sort(nums,String.CASE_INSENSITIVE_ORDER);
   System.out.println(nums);

   int pos = Collections.binarySearch(nums,"C/SEA",String.CASE_INSENSITIVE_ORDER);

尝试这样的事情:

public static <T> int findLast(List<T> list, T search, Comparator<T> comp) {
    int pos = Collections.binarySearch(list, search, comp);
    if (pos >= 0) {
        while (pos+1 < list.size()
                && comp.compare(search, list.get(pos+1)) == 0) {
            ++pos;
        }
    }
    return pos;
}