我需要帮助找出一种有关如何将元素添加到数组列表的方法。一旦添加,我想让它显示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值的列表,则应首先覆盖equalshashCodeDisc方法。这样,您可以确定是否应将Disc的两个不同实例视为具有相等的值。

然后,将ArrayList替换为LinkedHashSetLinkedHashSetSet的实现(按合同,它禁止重复的值),但它也保留插入顺序-因此有点像没有重复的List

现在,如果元素为“ new”,则LinkedHashSet.add(Disc)将返回true,如果元素已经存在,则返回false

关于java - Java对象引用任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35550261/

10-10 13:31