cleverczr
V2EX  ›  Java

问下 Java 数组怎么根据元素获取该元素下标?

  •  
  •   cleverczr · Jan 31, 2021 · 4539 views
    This topic created in 2112 days ago, the information mentioned may be changed or developed.

    网上找了很多方法都不行,请教下各位🙏,顺便说明下,谢谢

    21 replies  •  2021-02-04 14:11:37 +08:00
    EminemW
    EminemW
    Jan 31, 2021
    1
    遍历一遍啊
    Jacky23333
    Jacky23333
    Jan 31, 2021 via Android
    2
    看来大学数据结构经常逃课啊
    Jooooooooo
    Jooooooooo
    Jan 31, 2021
    3
    遍历数组

    如果相等, 返回当前 index
    RedBeanIce
    RedBeanIce
    Jan 31, 2021
    4
    入门请学习好数据结构
    不行就多看 java ArrayList 源码,
    RedBeanIce
    RedBeanIce
    Jan 31, 2021
    5
    ```java
    public class FindObject {

    public static void main(String[] args) {
    int[] intArr = {3, 4, 5, 6, 7};
    int index = findIndex(intArr, 4);
    System.out.println("index = " + index);
    }

    private static int findIndex(int[] intArr, int value) {
    for (int i = 0; i < intArr.length; i++) {
    if (value == intArr[i]) {
    return i;
    }
    }
    // -1 不存在
    return -1;
    }
    }

    ```
    rb6221
    rb6221
    Jan 31, 2021❤️1
    6
    这种能百度到的问题还是少发吧
    xuanbg
    xuanbg
    Jan 31, 2021
    7
    元素都找到了,还要下标有个毛用啊。。。
    AllenHua
    AllenHua
    Jan 31, 2021 via iPhone
    8
    数组中的元素 都是唯一的吗
    Kasumi20
    Kasumi20
    Jan 31, 2021
    9
    二分查找
    Junzhou
    Junzhou
    Jan 31, 2021
    10
    @Kasumi20 二分只针对有序数组
    Lemeng
    Lemeng
    Jan 31, 2021
    11
    根据元素获取下标,不是只有遍历吗,几乎接触的需要都是这样
    itechify
    itechify
    Jan 31, 2021❤️1
    12
    一叠扑克牌,只能一张一张拿起来看,怎么找到方块 K ?
    debuggerx
    debuggerx
    Jan 31, 2021
    13
    再用一个 Map<Object, Integer>,往数组里塞数据的时候用这个 Map 存下标不就行了,保证找起下标来简单还快[狗头]
    Cowhitewhite
    Cowhitewhite
    Feb 1, 2021
    14
    ................................................................................................................................................................................................................................................................................................................................................................
    zhaokun
    zhaokun
    Feb 1, 2021
    15
    反转为 map,然后取 KEY
    Vkery
    Vkery
    Feb 1, 2021
    16
    @debuggerx
    @zhaokun
    数组中可能存在多个相同的元素 转 Map 不合适
    xuanbg
    xuanbg
    Feb 1, 2021
    17
    @zhaokun 转 map 不要迭代的吗……还不如直接找,运气好第一个就找到了
    zhaokun
    zhaokun
    Feb 1, 2021
    18
    @Vkery 元素相同你还取 KEY,取出来有啥意义?
    koujyungenn
    koujyungenn
    Feb 1, 2021
    19
    老生常谈
    时间换空间:遍历
    空间换时间:<Value,Index>作为 KV 存一个 map

    不过还有没有更好的办法...
    beitayongguo
    beitayongguo
    Feb 2, 2021
    20
    list.stream.filter(e -> Objects.equals(e.value, valueParam)).findFirst()
    Vkery
    Vkery
    Feb 4, 2021
    21
    @zhaokun 别管有什么意义 别人说的数组 list 而不是 set 那就存在这种可能性 写代码的时候就需要考虑到这种可能性
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1714 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    ♥ Do have faith in what you're doing.