Java Project Wording问题

时间:2014-02-10 18:25:07

标签: java software-design

我有以下项目要完成,但设置它的人并没有多大意义。我已经完成了大约60%的程序,它感觉不对,我想查看其他人认为他们正在进行的事情。

对于项目的这一部分,您需要实现一个IntegerSet类。该集应该由一系列布尔值表示。当且仅当i在集合中时,第i个元素才为真。因此,可以作为集合元素的最大整数由数组的大小决定。

您应该提供以下方法: 具有单个整数参数domainMax的构造函数,并创建IntegerSet的实例,其元素可以是不大于domainMax的任何非负整数。最初该集应为空。您可以假设参数始终大于零。

一个方法addElement,它将非负整数作为参数并将其插入到集合中。如果元素超出集合的域最大值,则应增加域最大值以适应它。如果元素已存在,则该组不变。您可以假设永远不会使用否定参数调用该方法。

一个静态方法联合,它将两个集合作为其参数并返回一个新集合,该集合是两个集合的并集。请注意,作为参数提供的两个集可能具有不同的域最大值;结果联合应该具有这两个域最大值中的较大者。

静态方法交集,它将两个集合作为其参数,并返回一个新集合,这是两个集合的交集。请注意,作为参数提供的两个集可能具有不同的域最大值;生成的交叉点应该具有两个域最大值中较小的一个。

  1. " set"是什么意思?我无法找到与此项目相关的任何内容。
  2. 如果实例化对象中的方法,我如何在并集和交集中获取两个对象实例。对我来说完全是无稽之谈。
  3. 如何存储整数集,因为它需要适应大小。

1 个答案:

答案 0 :(得分:2)

规格似乎对我很好。它们的意思是设置为“集合论”。表示一组整数的一种方法,尽管从存储的角度来看效率低,但是使用一组布尔值。这是一个非常合理的练习。

显然,对于这个项目使用Set<Integer>会更好,但是这一点很难理解。这是一个很有趣的编程练习。

与往常一样,将其分解为易于管理的部分。我会:

  1. 创建课程
  2. 编写构造函数。这将引导您找到正确的成员变量。
  3. 编写addElement方法
  4. 这些事情应该很简单,也许你会获得更多的洞察力。一旦你完成了union和intersection方法的工作。如果您仍有问题,请回来查看!

    请记住,如果将值3添加到集合两次,它将只在集合中一次。 (集合的定义)。所以你的方法看起来像这样(记住这不是100%正确的定义):

    public void addElement(int element) {
        myArray[element] = true;
    }
    

    因此,当您第二次或第三次调用addElement(3);时,它不会更改正确的状态。