是否可以使用Array.binarySearch方法通过私有属性搜索Java中的对象数组?我认为必须有类似于排序技术的东西,你创建一个实现Comparator的类并将其传递给Array.sort,但我似乎找不到任何东西(也许有些东西代替compareTo方法)你只需返回搜索中使用的属性)??
为了清楚起见,我有一个匿名的Station对象数组,并将其传递给另一个我想在数组中搜索工作站名称的类,可以通过getName()返回.
任何帮助将非常感激!
是的 - 事实上它使用了Comparator你在答案中指定的!
如果您查看binarySearchAPI中方法的实现,您会遇到binarySearch(T [] a,T key,Comparator c):
使用二进制搜索算法在指定的数组中搜索指定的对象.
您可以随意实施比较器,因此可以使用它来比较问题中提到的私有属性.
编辑对评论的回应:这T是一个通用参数,意味着它可以是任何东西,只要它在它出现的每个位置都是相同的.在这种情况下,这意味着第一个参数必须是第二个参数类型的数组.或者换句话说,如果你正在排序一个Ts 数组(Station在你的情况下为s ),那么你需要传入该类的一个实例(Station这里)作为要比较的对象.该关键参数将始终作为比较器比较方法的参数之一传入.
所以我怀疑在你的情况下你传递了一个表示电台名称的字符串; 你应该传入一个Station具有适当名称的实例.
| 归档时间: |
|
| 查看次数: |
5046 次 |
| 最近记录: |