嘿伙计们,我一直无法从字符串中删除重复的字母。我已尝试使用字符串方法循环,但我没有看到任何地方。有谁知道如何从链表或字符串中删除重复的字母。我有一个发送的字符串,其中包含一个字符串。我还有一个LinkedList word = new Linked List();它有相同的字母。
答案 0 :(得分:0)
利用LinkedHashSet的属性,保证其元素和之间的唯一性保留顺序:
String string = "foobar";
Set<Character> uniqueChars = new LinkedHashSet<>();
for (char character : string.toCharArray()) {
uniqueChars.add(character );
}
uniqueChars.forEach(character -> System.out.print(character)); // fobar
更高级的替代方案是使用Java 8 Stream API,它将实现相同的目标:
String string = "foobar";
LinkedHashSet<Character> uniqueChars = string.chars()
.mapToObj(character -> (char) character )
.collect(Collectors.toCollection(LinkedHashSet::new));
uniqueChars.forEach(character -> System.out.print(character)); //fobar
答案 1 :(得分:0)
有两种方法可以实现相同的目标,如下所示:
尝试将值放入SET
new HashSet<>(listWithDuplicates)
使用番石榴也可以这样做:
Lists.newArrayList(Sets.newHashSet(listWithDuplicates));
最后 - 让我们看一下在Java 8中使用Lambdas的新解决方案;我们将使用Stream API中的distinct()方法,该方法根据equals()方法返回的结果返回由不同元素组成的流:
listWithDuplicates.stream()
.distinct()
.collect(Collectors.toList());
请告诉我它是否有帮助..
有关Stream api的详细信息和示例,请点击以下网址:
https://kpblogs.com/java/java8/java-stream-api-with-example/