gpt4 book ai didi

java - LinkedHashSet 似乎要留下重复的元素

转载 作者:行者123 更新时间:2023-11-29 03:01:13 25 4
gpt4 key购买 nike

我很好奇是否有人知道为什么我的 LinkHashSet 中的第一个元素似乎允许重复?我正在通过 CodeEval 进行代码挑战,当我输入值 2、2、3、3、3、4、4、4、5、5、6 时,程序的输出显示 2、2、3、4、5, 6 这只是导致问题的第一个元素。

我使用的是 jre 1.8.0_45。我厌倦了解决问题并检查了挑战,网站接受了我的解决方案,所以我想知道我的 Java 版本是否存在错误。我进行了搜索,但没有看到任何其他人对 LinkHashSet 产生重复问题的帖子。

import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;


public class UniqueElements
{

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String line = s.nextLine();

List<String> list = Arrays.asList(line.trim().split(","));

Set<String> string = new LinkedHashSet<>(list);

Iterator<String> iter = string.iterator();

while (true)
{
System.out.print(iter.next());

if (iter.hasNext()) {
System.out.print(",");
} else {
System.out.println();
break;
}
}

}
}

最佳答案

你的问题在这里:

List<String> list = Arrays.asList(line.trim().split(","));

它创建一个列表,其中第一个元素是 "2",第二个元素是 "2"(注意前导空格)。

您需要从输入中删除空格或拆分 ", ""\\s*,\\s*" 以允许在和之前的空格逗号后。

关于java - LinkedHashSet 似乎要留下重复的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795681/

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