除了HashSet,Java还有哪些数据结构可以用于这个问题?
时间: 2024-10-14 17:16:30 浏览: 22
除了HashSet,Java还可以使用HashMap或LinkedHashSet来解决这个问题。HashMap虽然不是专门用于存储唯一元素的,但也可以通过键值对的形式实现,其中键是字符,值设为true表示已存在,不存在则添加。然而,由于HashMap允许null键值对,可能会有额外的判断。
另一个选择是LinkedHashSet,它保留了集合的插入顺序,并且不允许重复元素,这在需要保持原始顺序的情况下比较合适。
以下是使用LinkedHashSet的例子:
```java
import java.util.LinkedHashSet;
public class Main {
public static String removeDuplicates(String input) {
LinkedHashSet<Character> uniqueChars = new LinkedHashSet<>();
StringBuilder sb = new StringBuilder();
for (char c : input.toCharArray()) {
sb.append(uniqueChars.add(c) ? c : "");
}
return sb.toString();
}
public static void main(String[] args) {
String str = "sys-tem";
System.out.println(removeDuplicates(str)); // 输出 "sytem"
}
}
阅读全文