我需要帮助找出一种有关如何将元素添加到数组列表的方法。一旦添加,我想让它显示true或false(如果以前添加了该元素),如果没有添加,则像成功添加新光盘中那样显示true。到目前为止,这是我的代码的一部分。
public class MediaArchive
{
private String name ;
private String owner ;
private ArrayList<Disc> list;
//Constructor
public MedieArkiv(String name, String owner) {
this.name = name;
this.owner = name;
list = new ArrayList<Disc>();
}
//Method for adding a new "Disc" to the ArrayList.
public void addDisc(Disc newDisc) {
list.add(newDisc);
}
所以我的问题是,我该如何制作一种可以将“新光盘”添加到阵列列表的方法?并将它们另存为参数,以便列表通过使用ture或false来显示是否添加了它们。
旁注:我正在通过BlueJ学习此语言,并且对语言仍然很新鲜。
最佳答案
如果要获取唯一的Disc
值的列表,则应首先覆盖equals
的hashCode
和Disc
方法。这样,您可以确定是否应将Disc
的两个不同实例视为具有相等的值。
然后,将ArrayList
替换为LinkedHashSet
:LinkedHashSet
是Set
的实现(按合同,它禁止重复的值),但它也保留插入顺序-因此有点像没有重复的List
。
现在,如果元素为“ new”,则LinkedHashSet.add(Disc)
将返回true
,如果元素已经存在,则返回false
。
关于java - Java对象引用任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35550261/