编写方法compare,判断当前抽取的超级英雄位序与已经抽取的位序集合是否重复,如果不重复返回false,如果重复放回true。
时间: 2024-09-26 11:15:13 浏览: 22
为了创建一个名为`compare`的方法来检查超级英雄的顺序是否已经在给定的列表(假设为`ArrayList<Superhero>`)中出现过,我们可以使用HashSet数据结构来存储已抽取的英雄。HashSet不允许有重复元素,所以如果我们尝试添加一个新的超级英雄时,如果插入失败(即元素已经存在),那意味着英雄的顺序是重复的。
以下是一个简单的Java实现:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class Superhero {
// 假设Superhero有一个toString()方法,用于获取其表示字符串
public static boolean compare(Superhero newHero, ArrayList<Superhero> drawnHeroes) {
HashSet<String> heroSet = new HashSet<>(Arrays.asList(drawnHeroes.stream().map(Superhero::toString).toArray(String[]::new)));
return !heroSet.add(newHero.toString());
}
}
```
在这个`compare`方法中,我们首先从`drawnHeroes`列表中提取所有英雄的字符串表示,然后将其添加到HashSet中。由于HashSet不允许重复元素,所以我们调用`add`方法并检查其返回值。如果`add`操作成功(返回`true`),那么新英雄的顺序就是新的;否则(返回`false`),说明新英雄已经在之前的序列中了。
阅读全文