想象一下这样的代码:
Set<Car> carObject;
现在我知道这个集合中只有一个对象。我如何正确获得它?
Car myCar = carObject.whatMethod ?
???
编辑:感谢您的出色回答。
我知道只有一个对象,因为我有一个
if(carObject.size ... )
检查之前。
如果你真的知道有一个元素:
Car myCar = carObjet.iterator().next();
无论如何,我肯定会这样做:
Iterator<Car> it = carObjet.iterator();
if (it.hasNext()) {
Car myCar = it.next();
}
尝试:
carObject.iterator().next();
您可以使用数组:
Car myCar = carObject.toArray(new Car[1])[0];
因为集合不能通过索引直接访问其成员,所以您必须遍历集合,这似乎是最便宜的:
Car myCar = carObject.iterator().next();
这通常比将集合转换为数组或列表更可取,因为迭代器不会复制数据结构。
如果您知道您的Set
hasn
元素并且想要访问该元素i
:
carSet.toArray(new Car[n])[i];