gpt4 book ai didi

java - 这两种相加方式是等价的吗?

转载 作者:行者123 更新时间:2023-12-02 02:06:41 24 4
gpt4 key购买 nike

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

座位是一个集合,

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。

public boolean addSeating(Group group) {
return seatings.add(createSeating(group));
}

这将:

  1. 如果新创建的座位已添加到集合中,则返回 true
  2. 如果新创建的座位未添加到集合中,则返回 false

请注意,我们不知道 seatingsList 还是 Set 或者某种其他类型 Collection :

  • 如果 seatingsSet,则 add 将返回 false正在添加的元素已在集合中。 (或者更准确地说,如果它等于并且元素已经在集合中。)

  • 其他集合类型可能因其他原因拒绝添加。例如,List 类可能拒绝添加 null 或类型错误的元素,或者如果列表“已满”,它可能会拒绝添加。 .在某种意义上。

(如果seatingsArrayList,那么add将始终成功,因此结果始终为true.)

版本 2。

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

这将:

  1. 如果新创建的座位为 null,则返回 false
  2. 否则返回true

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

关于java - 这两种相加方式是等价的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50662185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com