gpt4 book ai didi

java - 为什么临时变量与我从 arraylist.get 中得到的不一样?

转载 作者:行者123 更新时间:2023-11-30 12:03:40 25 4
gpt4 key购买 nike

我正在尝试解决必须找到字符串的第一个非重复字符的问题。我知道我的解决方案很奇怪或效率低下但没有意义的一件事是当我设置

char temp = check.get(i);

temp 中的变量似乎不是一回事

public static Character firstNonRepeatedCharacter(String str)
{
ArrayList<Character> check = new ArrayList<Character>();

for (char c : str.toCharArray()) {
check.add(c);
}

for (int i = 0; i < check.size(); i++) {
char temp = check.get(i);
check.remove(check.get(i));

if (check.contains(temp)) {
check.removeAll(Collections.singleton(temp));
} else {
return temp;
}
}

return null;
}

最佳答案

你的问题是,一旦你从 ArrayList 中删除了一些项目,例如

check.remove(check.get(i));

ArrayList 中的所有项目都“向上移动”:如果您删除索引 5 处的项目,则以前位于索引 6 处的项目现在位于索引 5 处。然后当您去删除项目时(新) 索引 6,您删除了(原始)索引 7 处的那个。

关于java - 为什么临时变量与我从 arraylist.get 中得到的不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57529633/

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