java - 返回二维数组 java.lang.Object 中任意对象的索引。

标签 java arrays object indexing

我正在尝试查找放置在数组中的对象的索引。数组已经像这样填充了

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 并取消 indexOfget
  • 使用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/

相关文章:

arrays - 如何转换此语句以获得更好的性能

ios - 自定义对象返回 NSDictionary 作为类型

java - 如何在java中不使用if、switch、条件运算符、反射、while语句来调用不同的方法

python - 阵列点积

改变C中字符串数组中字符的值

c++ - 将对象传递给类构造函数

php - 类继承、代码分解、php 对象模型

java - org.hibernate.exception.SQLGrammarException : could not prepare statement -- Spring ROO

java - Equinox Launcher 忽略 .ini 文件和 vmargs

java - 如何删除 Java Servlet 中的 Cookie