java中的fastutil
java中提供很多集合类,比如ArrayList,HashMap等等。但你有没有发现其中的这些集合类都是泛型的,有的时候你会发现用泛型会比较慢。慢在哪呢?慢就慢在基本类型的装包和拆包。当你处理大数量的时候,这个慢有的时候就不能接受了。 那这怎么解决呢?推荐大家使用fastutil,一个意大利实验室出品,主要用在其的WebGraph上。
下面是其官方网站对其的介绍:
fastutil extends the Java™ Collections Framework by providing type-specific maps, sets, lists and queues with a small memory footprint and fast access and insertion; provides also big (64-bit) arrays, sets and lists, and fast, practical I/O classes for binary and text files. It is free software distributed under the Apache License 2.0. It requires Java 6 or newer. The classes implement their standard counterpart interface (e.g., Map for maps) and can be plugged into existing code. Moreover, they provide additional features (such as bidirectional iterators) that are not available in the standard classes. Besides objects and primitive types, fastutil classes provide support for references, that is, objects that are compared using the equality operator rather than the equals() method. The sources are generated using a C preprocessor, starting from a set of driver files. You can peek at thejavadoc-generated documentation. In particular, the overview explains the design choices used in fastutil.
我目前在很多自己写的实验代码中在用,发现挺好用的,比java自带的要好用很多,尤其是对于基本类型。
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名小橋流水(包含链接)。如您有任何疑问或者授权方面的协商,请给我发邮件。