所以我在與將一個元素增加到一個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'? –