如何在Java中找到数组中元素的索引?

如何在Java中找到数组中元素的索引?

我希望在Java中找到给定元素的索引,知道它的内容。

我尝试了以下示例,该示例不起作用:

class masi { 
    public static void main( String[] args ) { 
        char[] list = {'m', 'e', 'y'};

        // should print 1
        System.out.println(list[] == "e");                    
    } }

任何人都可以解释这有什么问题以及我需要做些什么来解决它?


一只甜甜圈
浏览 4325回答 3
3回答

呼如林

在这种情况下,您可以从字符数组中创建新的String,然后对该字符串执行indeoxOf(“e”):System.out.println(new String(list).indexOf("e"));但在原始数据类型的其他情况下,您将不得不迭代它。

12345678_0001

或者,您可以使用Commons Lang ArrayUtils类:int[] arr = new int{3, 5, 1, 4, 2};int indexOfTwo = ArrayUtils.indexOf(arr, 2);indexOf()对于不同的数组类型,存在方法的重载变体。

烙印99

这甚至不是有效的语法。而你正在尝试与字符串进行比较。对于数组,您必须自己遍历数组:public&nbsp;class&nbsp;T&nbsp;{ &nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(&nbsp;String&nbsp;args[]&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;char[]&nbsp;list&nbsp;=&nbsp;{'m',&nbsp;'e',&nbsp;'y'}; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;index&nbsp;=&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;(i&nbsp;<&nbsp;list.length)&nbsp;&&&nbsp;(index&nbsp;==&nbsp;-1);&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(list[i]&nbsp;==&nbsp;'e')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;i; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(index); &nbsp;&nbsp;}}如果您正在使用集合,例如ArrayList<Character>您也可以使用以下indexOf()方法:ArrayList<Character>&nbsp;list&nbsp;=&nbsp;new&nbsp;ArrayList<Character>();list.add('m');list.add('e');list.add('y');System.out.println(list.indexOf('e'));还有一个Arrays类缩短了上面的代码:List&nbsp;list&nbsp;=&nbsp;Arrays.asList(new&nbsp;Character[]&nbsp;{&nbsp;'m',&nbsp;'e',&nbsp;'y'&nbsp;});System.out.println(list.indexOf('e'));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java