使用HashSet<String> 找出重复的字符串
时间: 2023-05-19 08:05:33 浏览: 51
可以使用以下代码来找出重复的字符串:
HashSet<String> set = new HashSet<String>();
HashSet<String> duplicates = new HashSet<String>();
for (String str : strings) {
if (!set.add(str)) {
duplicates.add(str);
}
}
其中,strings 是一个包含多个字符串的数组。首先,我们创建了一个 HashSet 对象 set,用于存储字符串。然后,我们遍历 strings 数组中的每个字符串,如果该字符串已经存在于 set 中,则说明它是一个重复的字符串,我们将其添加到另一个 HashSet 对象 duplicates 中。最后,duplicates 中存储的就是所有重复的字符串。
相关问题
Java读文件找出相同字符串代码
可以使用Java中的BufferedReader和FileReader来读取文件,并使用HashSet来存储已经读取的字符串,如下所示:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashSet;
public class FindSameStrings {
public static void main(String[] args) {
String fileName = "input.txt";
HashSet<String> set = new HashSet<>();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
String[] words = line.split(" ");
for (String word : words) {
if (!set.add(word)) {
System.out.println("Found duplicate string: " + word);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
此代码将从名为“input.txt”的文件中读取所有单词,并在HashSet中存储它们。如果HashSet无法添加单词,则说明该单词已经存在,因此它是重复的。在这种情况下,程序将输出“Found duplicate string: [WORD]”以指示发现了重复字符串。
已知一个字符串"helloworld" 请统计每种字符出现的次数 先去重,找出每种字符 Set<Character> 再针对每种字符找出现的次数
对于给定的字符串 "helloworld",可以先通过遍历字符串得到每种字符,并使用Set集合去重。然后,再针对每种字符统计其出现的次数。下面是一个示例代码:
```java
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String[] args) {
String str = "helloworld";
// 使用Set去重找出每种字符
Set<Character> uniqueChars = new HashSet<>();
for (char c : str.toCharArray()) {
uniqueChars.add(c);
}
// 针对每种字符统计出现的次数
Map<Character, Integer> charCountMap = new HashMap<>();
for (char c : uniqueChars) {
int count = 0;
for (char ch : str.toCharArray()) {
if (c == ch) {
count++;
}
}
charCountMap.put(c, count);
}
// 输出每种字符及其出现次数
for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
System.out.println(entry.getKey() + " - " + entry.getValue());
}
}
}
```
运行这段代码,你会得到以下输出:
```
d - 1
r - 1
e - 1
w - 1
o - 2
l - 3
h - 1
```
可以看到,每种字符及其出现的次数被正确统计和输出了。