Arrays.asList(arr).indexOf不工作。

问题描述 投票:1回答:1

考虑以下片段

 int key1 = Arrays.asList(new int[]{1,2,3,4,5}).indexOf(5) ;//wrapper 
 int key2 = new ArrayList<>(Arrays.asList(new int[]{1,2,3,4,5})).indexOf(5); //another copy        

但是这段代码的值为-1 -1,这意味着它没有在列表中找到键5,但为什么呢?Arrays.aslist 在列表中找不到键。谁能解释一下或快速解决在数组中搜索键的代码,而不需要显式逻辑实现。当然,我们可以对它进行排序,然后使用 Arrays.binarySearch. 有无其他建议或其他方法可以做到这一点。

java arrays search
1个回答
1
投票

问题在于你在Array.asList(new int[]{1,2,3,4,5}.indexOf(5))里面创建的Array类型。asList(),考虑到List类型需要非原生类型,你需要声明一下 int 作为 Integer. 如果你把你的代码改成:

Arrays.asList(new Integer[]{1,2,3,4,5}).indexOf(5);

就可以了

© www.soinside.com 2019 - 2024. All rights reserved.