我创建了一个trie,我的应用程序将其保存在内存中。 Trie将有很多节点,我正在考虑如何减少空间使用量。 因为我将使用trie到DAWG算法来减少节点的数量,但据我所知这还不够。Java减小对象的大小
这里是一个节点类
class Node{
char letter;
boolean EOW; // end of word
Node child; // first child
Node next; // next Node on this level
}
据我知道这个类的对象将具有14个字节(2个字节用于炭,4为布尔变量和2 * 4将被保留用于参考给定的)
我认为我可以用字节替换char。这将节省1字节。但是我不知道类型转换需要多少时间。可能这是一个糟糕的设计。
此外布尔值需要4个字节,也许你知道我可以使用,而不是布尔值?
所以我需要你帮我减小节点的大小。提前致谢。
您能否以面向对象的方式实现它,因此您有'EndOfWordNode extends Node',隐式指示布尔值? –
@AndyTurner尝试的方式通常是构建的,这可能会让事情变得更加困难。 – immibis
@immibis“更难”确定。我宁愿不这样做。但是,如果空间是首要考虑的因素,那么可能要吃困难就是价格。 –