【问题标题】:Java Finding index of an element in a java listJava在Java列表中查找元素的索引
【发布时间】:2016-03-22 01:25:27
【问题描述】:

简单的问题,但每次我用谷歌搜索时,只有使用 ArrayList 的示例,而 list.indexOf(3) 不适用于 int[] nums = new int[10]。 Soo 我有点困惑。

【问题讨论】:

  • 而且,该列表由 10 个元素组成。我只是在写 int[] 以表明它不是数组列表
  • 有什么问题?
  • 迭代是O(n),对于Listint[]。你有哪个?哦,如果numsInteger[],则Arrays.asList(nums).indexOf(3) 有效。
  • nums[***你是这里的索引 ***]
  • @mike 你给我的网站告诉我使用 indexOf(object o),但是当我在我的 ide 上输入它时,它说。无法在数组类型 int[] 上调用 indexOf(int)

标签: java list indexing


【解决方案1】:

这是真正的问题。你似乎认为

 int[] nums = new int[10]

正在定义List 或列表。它不是。它是一个数组。 “list”和“array”这两个词在 Java 的上下文中不是同义词。因此,当您使用 Google 搜索“查找列表中元素的索引”时……您不会得到任何有用的结果。

如果您在搜索时使用 >>正确

例如:


FWIW,如果你想要一个 Java 中的(真正的)整数列表,你可以这样声明:

List<Integer> nums = new ArrayList<>();

注意事项

  1. 您必须使用Integer 作为类型参数,而不是int
  2. 您不需要提供10 作为参数。如果你这样做了,这是一个提示,告诉ArrayList 列表的初始容量应该是什么。 (对于数组,它是实际大小......并且不能更改)。

【讨论】:

  • 哦,是的,我认为它创建了一个包含 10 个索引的列表。蹩脚,好吧,我最好找到列表和数组之间的区别谢谢。
【解决方案2】:

如果你想在数组上使用 indexOf(3),你可以从中创建一个 List

ArrayList&lt;Integer&gt; myInts = new ArrayList&lt;Integer&gt;(Arrays.asList(array))

然后你就可以使用了

myInts.indexOf(3)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-26
    • 2021-06-25
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2010-12-02
    • 2014-09-03
    • 2013-01-17
    相关资源
    最近更新 更多