HashSet类本身实现了Serializable,但它用于存储所有数据的Hashmap保持瞬态。在反序列化时不会丢失所有数据吗?那么序列化它有什么意义呢?提前谢谢:)
答案 0 :(得分:0)
HashSet序列化为基本集。在反序列化时,构造一个新的HashMap来保存数据。当你关心的只是键时,没有必要使用键值对来序列化地图。
答案 1 :(得分:0)
首先,您是对的,哈希集中的瞬态哈希图不会被序列化,但是哈希集将数据存储在其字段哈希图中,您认为进行序列化时,哈希集可能会丢失其数据,通过阅读HashSet源代码,您会发现有两种方法HashSet中称为writeObject和readObject的对象,在进行序列化时会在hashset中调用writeObject方法来存储数据,而在进行反序列化时,会在hashset中调用readObject方法来还原数据,因此无需序列化字段的hashmap
# draw a triangle
vertices = np.array([[480, 400], [250, 650], [600, 650]], np.int32)
pts = vertices.reshape((-1, 1, 2))
cv2.polylines(img_rgb, [pts], isClosed=True, color=(0, 0, 255), thickness=20)
# fill it
cv2.fillPoly(img_rgb, [pts], color=(0, 0, 255))
# show it
plt.imshow(img_rgb)