如何在二进制堆中存储任何类型的可比较对象

Posted

技术标签:

【中文标题】如何在二进制堆中存储任何类型的可比较对象【英文标题】:How to store any type of comparable object in a Binary Heap 【发布时间】:2014-03-19 07:46:23 【问题描述】:

Java:我已经实现了我自己的Binary Heap 版本。它应该能够存储任何类型的 Comparable 对象。插入到堆中的对象来自输入数据,并且所有输入数据将属于同一类型。有没有办法告诉给定输入是什么对象类型?我正在使用

BufferedReader in = new BufferedReader(new InputStreamReader(System.in))

读取输入,in.readLine() 总是返回一个字符串。现在,我正在明确测试用户是否输入了整数,否则该对象始终存储为字符串。

读取输入的最佳方法是什么,看看它是什么类型,然后创建该类型的BinaryHeap<T>,然后正确插入?

【问题讨论】:

任何对象都可以转换为字符串,但反向方法不可用(或不可能)。您必须为自己期望作为输入的所有类型添加“显式测试”,就像您为 Integer 所做的那样。 【参考方案1】:
public class BinaryHeap<T extends Comparable<? super T>>

【讨论】:

以上是关于如何在二进制堆中存储任何类型的可比较对象的主要内容,如果未能解决你的问题,请参考以下文章

ISerializable 对象应该如何存储二进制数据?

关于 Blob

对象中的值类型也存储在堆中?

equals和==的区别

如何查询blob类型中存的是啥格式的文件

Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)