所以我在与将一个元素增加到一个ArrayList爪哇ArrayList.contains()&添加()方法
我有一个类Media
3个字段和另一类Mediatheque
用1场这个问题(这是一个ArrayList)。
比方说,我有:
一个
Mediatheque media = new Mediatheque
的
equals(Media m)
方法类Media
<(重要的方法)
我需要写一个方法add(Media m)
其中:
- 如果
media.contenu
确实包含的元素equals
到Media m
我要补充,我不能添加它,并增加包含元素的nbEx
领域media.contenu
-Else我可以用它添加由ArrayList
提供的(这似乎不是太硬)add
方法
于是,我就写一个使用equals(Media m)
方法我写的Media
类contains(Media)
方法,然后使用contains
方法add
方法。
我的问题是,我该如何编写add
方法? <(The Question)
我必须用ArrayList
来写这个,这是一个学校作业 对不起,关于长码和坏英文,我是一个完整的noob。
这里是我Media
类:
package Ex1;
public class Media {
private final String support; // Format: Book, CD, DVD,etc...
private final String titre; // Title
private int nbEx; // Number of copy
public Media(String titre, String support){
this.titre = titre;
this.support = support;
this.nbEx = 1;
}
public Media(){
titre = "";
support = "";
nbEx = 0;
}
public boolean equals(Media m){
boolean equality = false;
if (m instanceof Media){
equality = (this.titre.equals(m.titre) && this.support.equals(m.support));
}
return equality;
}
public Media(Media m){
this.titre = m.titre;
this.support = m.support;
}
}
这里是我的Mediatheque
类:
import java.util.ArrayList;
import static java.lang.System.out;
public class Mediatheque {
ArrayList<Media> contenu;
public Mediatheque(){
this.contenu = new ArrayList<Media>();
}
public Mediatheque(Mediatheque m){
this.contenu = m.contenu;
}
public boolean contains(Media m){
int i = 0;
boolean contain = this.contenu.get(i).equals(m);
for(i = 0; i<this.contenu.size(); i++){
if(contain)
break;
}
return contain;
}
public int indexOf(Media m){
boolean retVal = this.contenu.get(i).equals(m);
for(Media i : contenu){
if(contain)
break;
}
return i;
}
public void add(Media m){
if(this.contains(m)){
this.contenu.get(this.contenu.indexOf(m)).setNbEx(this.contenu.get(this.contenu.indexOf(m)).getNbEx()+m.getNbEx());
}else{
this.contenu.add(m);
}
}
我的问题是,我怎么写add
方法?
对不起长代码和糟糕的英文,我是一个完整的noob。
谢谢!
到底是什么限制吗? 'Media'类中的标题,还是'support'和'nbEx'也算在内? – Stefan
为什么重新发明['ArrayList#contains']的轮子(http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#contains-java.lang.Object- )? – ajp15243
正如你已经实现了'equals'方法,为什么不使用'ArrayList.contains'? –