下面列出了com.google.common.collect.TreeMultimap#values ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static Collection<AddressSpecHash> getAddressesByAge(WalletDatabase db, NetworkParams params)
{
TreeMultimap<Long, AddressSpecHash> age_map = TreeMultimap.create();
for(AddressSpec spec : db.getAddressesList())
{
String addr = AddressUtil.getAddressString(spec, params);
long tm = 0;
if (db.getAddressCreateTimeMap().containsKey(addr))
{
tm = db.getAddressCreateTimeMap().get(addr);
}
age_map.put(tm, AddressUtil.getHashForSpec(spec));
}
return age_map.values();
}
static TreeMultimap<String,IndexStream> pivot(TreeMultimap<String,IndexStream> children) {
TreeMultimap<String,IndexStream> newChildren = TreeMultimap.create(Ordering.natural(), Ordering.arbitrary());
final String max = children.keySet().last();
newChildren.putAll(max, children.removeAll(max));
for (IndexStream itr : children.values()) {
// move this iterator forward until we get to a key past the max processed thus far
String dayOrShard = null;
while (itr.hasNext()) {
dayOrShard = key(itr.peek());
if (dayOrShard.compareTo(max) >= 0) {
break;
}
if (isDay(dayOrShard) && max.startsWith(dayOrShard)) {
// use the existing max instead of the day to add to the list
dayOrShard = max;
break;
}
itr.next();
}
// add the item into our map
if (itr.hasNext()) {
newChildren.put(dayOrShard, itr);
} else {
// nobody has anything past max, so no intersection
return TreeMultimap.create(Ordering.natural(), Ordering.arbitrary());
}
}
return newChildren;
}