gpt4 book ai didi

java - 返回 -1 的索引

转载 作者:行者123 更新时间:2023-12-01 07:47:33 24 4
gpt4 key购买 nike

我正在集合中搜索字符串并一直返回 -1

下面是我的代码:

Set<String> myTokens = sharedPreferences.getStringSet("myTokens", new HashSet<String>());

if(String.valueOf(myTokens).contains(auth.getUid())){
int i = Arrays.asList(myTokens).indexOf(auth.getUid());
Log.w(TAG, "Index position of token is: " + String.valueOf(i) + " where the token array is: " + myTokens + "auth.getUid() is: " + auth.getUid());

我的输出:

Index position of token is: -1 where the token array is: [0o75WmAAlTcWUzxgbcleBQSVQSr1, Ztg4GOqeucd6CqNAEokUe7eRHhY2, VatU5fy1U4cgTc3uBBiGX7G7kuT2] auth.getUid() is: Ztg4GOqeucd6CqNAEokUe7eRHhY2

不知道为什么我一直得到 -1,有什么想法吗?

人们建议 auth.getUid() 的值不在集合中。但是“Ztg4GOqeucd6CqNAEokUe7eRHhY2”出现在我放在问题底部的集合中

感谢您的阅读!

最佳答案

Arrays.asList(myTokens)

myTokensSet<String> ,该表达式的类型为 List<Set<String>> ,不是List<String> .

List<Set<String>>不能包含String元素,indexOf(someString)将始终返回-1。

你应该使用

new ArrayList<>(myTokens)

而是制作集合的副本,其中元素按计算此表达式时的迭代顺序排列。

但是:myTokens是(或者至少可以是)HashSet ,这是一个无序集合。因此,“索引”没有任何意义,因为不能保证再次计算时索引会相同。如果集合包含该元素,则选择零是同样有效的策略。

关于java - 返回 -1 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48667695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com