在 Java 中,Set 集合的特点是元素不重复,且无序(HashSet)。如果用 Set 存储这些单词答案,有两种实现方式,下面是具体代码:
方式1:使用 HashSet 存储纯单词
适合仅存储不重复的单词内容,不关联题号
import java.util.HashSet;
import java.util.Set;
public class WordSetDemo1 {
public static void main(String[] args) {
Set<String> wordSet = new HashSet<>();
// 添加题目中的单词
wordSet.add("diverse");
wordSet.add("wide");
wordSet.add("especially");
wordSet.add("insulting");
wordSet.add("disposition");
wordSet.add("message");
wordSet.add("inadvertently");
wordSet.add("visitor");
wordSet.add("distressed");
wordSet.add("understood");
// 遍历输出所有单词
for (String word : wordSet) {
System.out.println(word);
}
}
}
方式2:存储自定义对象(题号+单词+释义)
如果需要关联完整信息,要让自定义类重写 equals() 和 hashCode() 保证元素唯一性
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
// 自定义单词信息类
class WordData {
private int num;
private String word;
private String meaning;
public WordData(int num, String word, String meaning) {
this.num = num;
this.word = word;
this.meaning = meaning;
}
// 重写equals和hashCode,确保按num判断唯一性
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
WordData wordData = (WordData) o;
return num == wordData.num;
}
@Override
public int hashCode() {
return Objects.hash(num);
}
@Override
public String toString() {
return "第" + num + "空:" + word + "(" + meaning + ")";
}
}
public class WordSetDemo2 {
public static void main(String[] args) {
Set<WordData> wordDataSet = new HashSet<>();
// 添加带完整信息的对象
wordDataSet.add(new WordData(1, "diverse", "多样的;不同的"));
wordDataSet.add(new WordData(2, "wide", "广泛的;宽阔的"));
wordDataSet.add(new WordData(3, "especially", "尤其;特别"));
wordDataSet.add(new WordData(4, "insulting", "侮辱的;无礼的"));
wordDataSet.add(new WordData(5, "disposition", "性情;性格"));
wordDataSet.add(new WordData(6, "message", "信息;消息"));
wordDataSet.add(new WordData(7, "inadvertently", "无意地;不经意地"));
wordDataSet.add(new WordData(8, "visitor", "访客;游客"));
wordDataSet.add(new WordData(9, "distressed", "苦恼的;心烦的"));
wordDataSet.add(new WordData(10, "understood", "理解;明白(过去分词)"));
// 遍历输出
for (WordData data : wordDataSet) {
System.out.println(data);
}
}
}