【问题标题】:Is there a method in Java that lets you find the index of an element in an int array? [duplicate]Java中是否有一种方法可以让您在int数组中找到元素的索引? [复制]
【发布时间】:2013-07-19 15:04:43
【问题描述】:

我需要评估满足某个条件的数组中的最后一个 int。我的程序可以计算出该 int 是什么,但它还需要知道它在数组中的位置。我在 stack-exchange 上搜索,有人发布了这个:

Arrays.asList(array).indexOf(indexPos);

作为一种可能的解决方案,但我不确定我是否做得对,因为我得到了错误 找不到标志。我也允许:

int test = Arrays.asList(array).indexOf(indexPos);

然后尝试打印测试,但我什至无法到达那一点。谢谢。

【问题讨论】:

  • 你从哪里得到这个错误的?
  • 你为什么不简单地在数组上循环?
  • LexiSort.java:95: 错误:找不到符号 int test = Arrays.asList(seq).indexOf(indexPos);那是错误,我需要导入任何东西吗?
  • ...你的数组叫array吗?你导入java.util.Arrays了吗?您不能只是复制/粘贴您不理解的代码并期望它自动运行。
  • 您声明并分配了 indexPos 吗?您的数组的名称是什么。它是 seq 吗?

标签: java arrays indexing


【解决方案1】:

是的,您在 List 接口中定义了该方法。所以你需要使用 asList() 函数,然后使用 indexOf() 函数。

如果数组没有排序,你可以使用java.util.Arrays.asList(theArray).indexOf(o) 如果数组已排序,可以使用二分查找功能(提高性能)java.util.Arrays.binarySearch(theArray, o)

至于错误,请确保您已导入 java.util.Arrays。此外,您已经定义了 Array seq 和 int indexPos 这使您的代码为int test = Arrays.asList(seq).indexOf(indexPos);

【讨论】:

    【解决方案2】:

    有人发布了其他人提出的类似问题。看来这对我有用。

    代码是:

    java.util.Arrays.asList(seq).indexOf(indexPos);
    

    还有问题:Where is Java's Array indexOf?

    【讨论】:

      【解决方案3】:

      您可能需要import java.util.Arrays 才能获取符号。

      除了循环遍历数组之外,没有保证可以找到数组中元素位置的方法 - 这基本上就是您的 asList sn-ps 正在做的事情。

      只要您的数组没有重复值,这将起作用。如果您需要处理重复值,您可能需要重新考虑数据结构。

      【讨论】:

      • 我没有任何重复项,但为什么会出现找不到符号错误?
      • @user2396852 见编辑回复:import java.util.Arrays
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 2013-01-21
      • 2021-07-22
      • 2010-12-04
      相关资源
      最近更新 更多