我正在尝试查找放置在数组中的对象的索引。数组已经像这样填充了
for(i = 0 ; i<n ;i++){
for(j=0; j<n ;j++){
squares[i][j]= new Square(i,j)
}
所以数组基本上充满了没有名称的 Square 对象。我想创建一个返回方形对象索引的方法,例如:
getObject(Square s){
{
我已经看到其他答案要求使用
Arrays.asList(array)
诸如此类的东西,但它们都尝试返回 int 或 String 的索引。
我应该如何返回任何对象的索引?
最佳答案
只要 Square
的比较运算符(equals()
方法)适合您,那么以下任何方法都可以工作:
- 转换为
ArrayList
并取消indexOf
和get
- 使用
java.util.Arrays.binarySearch
- 执行
foreach
循环并手动搜索 - 等等
你只需要一个有效的比较运算符,如果默认的Object.equals()
(对象实例的比较)适合你的需要,那么你不需要做太多事情:
Point getObject(Square s){
{
for(int i = 0; i<n; i++){
for(int j = 0; j<n; j++){
if( squares[i][j].equals(s) ) {
return Point(i, j);
}
}
}
return null;
}
请注意,如果您的数组很大,这不是最快的方法。
关于java - 返回二维数组 java.lang.Object 中任意对象的索引。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16054554/