任何人都可以帮我解决这个java代码吗?
我有两个类,需要创建一个 set ,可以存储另一个类的实例。这是我设法的样本" commit" :)
A类
public Class Rabbit {
private String age;
//constructor for instance of Rabbit <br>
public Rabbit(String rabAge) {
super();
this.age = rabAge;
}
现在B级:
public class ManyRabbits {
private Set <String> setOfRabbits;
现在这个方法应该创建一个Rabbit的新实例并将其添加到由变量setOfRabbits表示的集合中
public void addRabbit (String age)` {
//and I don't know what should go next...something like: `
Rabbit r1 = new Rabbit("10");` <br>
setOfRabbits.add(r1);
}
答案 0 :(得分:1)
您需要更改您的设置声明:
private Set<Rabbit> setOfRabbits;
并且您还需要对这两个方法进行操作,以便永远不会在集合中插入两次相同的对象。
@Override
public int hashCode() {
// Your own implementation
return ...;
}
@Override
public boolean equals(Object o) {
// Your own implementation
return ...;
}
答案 1 :(得分:0)
说:
Set<Rabbit> setOfRabbits = new HashSet<>();
setOfRabbits.add(new Rabbit());
当Set将跟踪未知数量的对象时,我通常会尝试使用未命名的实例进行实例化。这对于添加到监听器非常有用,因此您可以在每次用户单击时添加新的Rabbit。
通过这种方式,您可以添加许多您想要的Rabbit对象。尝试:
for(i = 0; i < 10; i++) {
setOfRabbits.add(new Rabbit());
}
您可能会在旧版本的Java中看到这一点:
Set<Rabbit> setOfRabbits = new HashSet<Rabbit>();
但不再需要
答案 2 :(得分:0)
你的ManyRabbits
calss应该是这样的
public class ManyRabbits
{
private Set<Rabbit> setOfRabbits = new HashSet<Rabbit>();
public void addRabbit (String age)
{
Rabbit r1 = new Rabbit(age);
setOfRabbits.add(r1);
}
}
答案 3 :(得分:0)
public class Rabbit {
private String age;
//constructor for instance of Rabbit
public Rabbit(String rabAge) {
super();
this.age = rabAge;
}
// more methods if necessary
}
在ManyRabbits
:
public class ManyRabbits {
private Set <Rabbit> setOfRabbits = new HashSet<>();
public void addRabbit (String age) {
Rabbit r1 = new Rabbit(age);
setOfRabbits.add(r1);
}
// more methods if necessary
}
通过调用类似
的方式使用它ManyRabbits manyRabbits = new ManyRabbits();
manyRabbits.addRabbit("10");
manyRabbits.addRabbit("20");
manyRabbits.addRabbit("30");