我觉得这个方法的返回值int应该是元素的索引数,难道不是吗?这个结果是正常的吗

使用Collections类的二分查找之前需要对数据进行排序,否则返回的索引值是不确定的,因此你这里出现了负数。在使用 binarySearch方法之前添加语句 Collections.sort(arr);就可以了
该搜索键不在范围内,且大于范围内元素,返回-(endIndex + 1);
你想要用Collections来查找元素的索引数的话,要先进行排序,然后再去用Collections.binarySearch去找,找到了会返回索引数,找不到会返回一个负数.