Java 这两种方法是等效的吗?

Java 这两种方法是等效的吗?,java,Java,我目前正在为Java考试做临时抱佛脚的准备,我想知道除了空检查之外,以下两种方法是否能产生相同的结果?如果没有,原因是什么 Seatings是一个集合 public boolean addSeating(Group group) { //return seatings.add(createSeating(group)); Seating seating = createSeating(group); if (seating != null){ seat

我目前正在为Java考试做临时抱佛脚的准备,我想知道除了空检查之外,以下两种方法是否能产生相同的结果?如果没有,原因是什么

Seatings是一个集合

public boolean addSeating(Group group) {

    //return seatings.add(createSeating(group));

    Seating seating = createSeating(group);
    if (seating != null){
        seatings.add(seating);
        return true;
    }
    return false;

这两种方法给出了不同的结果

第1版。 这将:

  • 如果新创建的座椅已添加到集合中,则返回
    true
  • 如果新创建的座椅未添加到集合中,则返回
    false
  • 请注意,我们不知道
    seatings
    是否是
    列表
    集合
    或其他类型的集合:

    • 如果
      seatings
      是一个
      集合
      add
      将返回
      false
      ,前提是要添加的元素已经在集合中。(或者更精确地说,如果它等于集合中已有的和元素。)

    • 其他收集类型可能会出于其他原因拒绝添加。例如,
      List
      类可以拒绝添加
      null
      或类型错误的元素,或者如果列表“已满”,则可以拒绝添加。。。从某种意义上说

    (如果
    seatings
    ArrayList
    ,则
    add
    将始终成功,因此结果将始终为
    true

    版本2。 这将:

  • 如果新创建的座位为空,则返回
    false
  • 否则返回
    true

  • 请注意,无论是否添加了新座椅,都会出现
    true
    结果。

    这两种方法给出不同的结果

    第1版。 这将:

  • 如果新创建的座椅已添加到集合中,则返回
    true
  • 如果新创建的座椅未添加到集合中,则返回
    false
  • 请注意,我们不知道
    seatings
    是否是
    列表
    集合
    或其他类型的集合:

    • 如果
      seatings
      是一个
      集合
      add
      将返回
      false
      ,前提是要添加的元素已经在集合中。(或者更精确地说,如果它等于集合中已有的和元素。)

    • 其他收集类型可能会出于其他原因拒绝添加。例如,
      List
      类可以拒绝添加
      null
      或类型错误的元素,或者如果列表“已满”,则可以拒绝添加。。。从某种意义上说

    (如果
    seatings
    ArrayList
    ,则
    add
    将始终成功,因此结果将始终为
    true

    版本2。 这将:

  • 如果新创建的座位为空,则返回
    false
  • 否则返回
    true

  • 请注意,无论是否添加了新座椅,
    true
    结果都会出现。

    取决于;集合
    seatings
    是否允许
    null
    ?如果是这样,那么这两种方法是不同的。但是我们无法从您发布的内容中判断。此外,from:Returns:true如果此集合因调用而更改,如果您尝试添加两个相同的座位,则两次都将返回true,即使对于任意集合。add()可能不会修改集合,例如,对于集合。dependens;集合
    seatings
    是否允许
    null
    ?如果是这样,那么这两种方法是不同的。但是我们无法从您发布的内容中判断。此外,from:Returns:true如果此集合因调用而更改,如果您尝试添加两个相同的座位,则两次都将返回true,即使是对于任意集合。add()可能不会修改集合,例如,对于集合。我明白了,谢谢!我应该指出这只是我代码的一个片段,“seatings”是一个ArrayList。我明白了,谢谢!我应该指出,这只是我代码的一个片段,“seatings”是一个ArrayList。
    public boolean addSeating(Group group) {
        return seatings.add(createSeating(group));
    }
    
    public boolean addSeating(Group group) {
        Seating seating = createSeating(group);
        if (seating != null){
            seatings.add(seating);
            return true;
        }
        return false;
    }