java高性能编程_java高性能编程 eclipse collections 1

ec:

https://www.eclipse.org/collections/

Eclipse Collections,是一个高性能的集合。

提供了丰富的可变和不可变的集合类,但它底层是经过优化的。

今天我们来看看怎么用这些集合,来加速我们的开发速度和程序性能。

1引入依赖包:

org.eclipse.collections

eclipse-collections-api

10.4.0

org.eclipse.collections

eclipse-collections

10.4.0

2.主要集合类:

ListIterable 有序的list集合,允许保存重复值。其包括:MutableList, FixedSizeList and ImmutableList。

主要实现类:FastList。

SetIterable 没有重复值的集合,其可以是有序或无序的。其主要子接口:SortedSetIterable and UnsortedSetIterable.

无序的主要实现类:UnifiedSet

MapIterable 键值对。其包括:MutableMap, FixedSizeMap and ImmutableMap

主要实现类:

UnifiedMap and MutableSortedMap.

BiMap 双向键值对。扩展自接口MapIterable

Bag 无序的list集合,允许重复值。其主要子接口MutableBag ,FixedSizeBag. 常用实现类:HashBag

StackIterable 堆栈 主要子接口MutableStack ,ImmutableStack

MultiMap 键值对,允许一个键对应多个值。

下面直接来看看怎么样实例化。

先看看FastList:

MutableListlist = FastList.newListWith(

"Porsche", "Volkswagen", "Toyota", "Mercedes", "Toyota");

再看看:

Setcomparison = UnifiedSet.newSetWith(

"Porsche", "Volkswagen", "Toyota", "Mercedes");

MutableBagbag = HashBag.newBagWith(

"Porsche", "Volkswagen", "Toyota", "Porsche", "Mercedes");

UnifiedMap有点不一样:

Pair pair1 = Tuples.pair(1, "One");

Pair pair2 = Tuples.pair(2, "Two");

Pair pair3 = Tuples.pair(3, "Three");

UnifiedMap map = new UnifiedMap<>(pair1, pair2, pair3);

当然,我们也可以用java传统的实例化方式:

UnifiedMap map = new UnifiedMap<>();

map.put(1, "one");

map.put(2, "two");

map.put(3, "three");

我们注意immutable,是不可变的。所以,我们用这些类时,是没有add或remove方法的。

值保存好后,现在我们要从集合中取值,也简单:

list.get(0);

map.get(0);

map.getFirst();//得到第一个

map.getLast();//得到最后一个

好,我们现在来实现一个这样的需求:

有map来保存,pair,这个pair,键是价格,值是对象:order,包括下单信息:下单时间,下单类型,下单币种,下单价格。

而且,这个pair可保存在一个有序的List中,以维护下单的优先级。

我们看看选择什么类型的map

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值