作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在准备 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;
最佳答案
这两种方法给出了不同的结果。
public boolean addSeating(Group group) {
return seatings.add(createSeating(group));
}
这将:
true
false
请注意,我们不知道 seatings
是 List
还是 Set
或者某种其他类型 Collection :
如果 seatings
是 Set
,则 add
将返回 false
正在添加的元素已在集合中。 (或者更准确地说,如果它等于并且元素已经在集合中。)
其他集合类型可能因其他原因拒绝添加
。例如,List
类可能拒绝添加 null
或类型错误的元素,或者如果列表“已满”,它可能会拒绝添加。 .在某种意义上。
(如果seatings
是ArrayList
,那么add
将始终成功,因此结果始终为true
.)
public boolean addSeating(Group group) {
Seating seating = createSeating(group);
if (seating != null){
seatings.add(seating);
return true;
}
return false;
}
这将:
null
,则返回 false
true
请注意,无论是否添加新座位,都会出现 true
结果。
关于java - 这两种相加方式是等价的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50662185/
我是一名优秀的程序员,十分优秀!