/** * Construct a new key index. It maps each long key to its position in the list. * * @param keys The list of keys to store. */ FrozenHashKeyIndex(LongList keys) { keyList = new LongArrayList(keys); indexMap = new Long2IntOpenHashMap(keys.size()); indexMap.defaultReturnValue(-1); LongListIterator iter = keys.listIterator(); while (iter.hasNext()) { int idx = iter.nextIndex(); long key = iter.next(); int old = indexMap.put(key, idx); if (old >= 0) { throw new IllegalArgumentException("key " + key + " appears multiple times"); } } }
/** * Compute the ranks for a list of longs. * @param results The list of longs. * @return The map of ranks; its default return value will be -1. */ public static Long2IntMap itemRanks(LongList results) { Long2IntMap ranks = new Long2IntOpenHashMap(results.size()); ranks.defaultReturnValue(-1); LongListIterator iter = results.listIterator(); while (iter.hasNext()) { int i = iter.nextIndex(); long val = iter.nextLong(); ranks.put(val, i); } return ranks; }
@Override public LongListIterator listIterator() { return list.listIterator(); } @Override
@Override public LongListIterator listIterator(final int i) { return list.listIterator(i); } @Override
@Override public LongListIterator listIterator() { return LongIterators.unmodifiable(list.listIterator()); } @Override
@Override public LongListIterator listIterator(final int i) { return LongIterators.unmodifiable(list.listIterator(i)); } @Override
@Override public LongBigListIterator listIterator() { return LongBigListIterators.asBigListIterator(list.listIterator()); } @Override
@Override public LongBigListIterator listIterator(final long index) { return LongBigListIterators.asBigListIterator(list.listIterator(intIndex(index))); } @Override
@Override public boolean equals(final Object o) { if (o == this) return true; if (!(o instanceof List)) return false; final List<?> l = (List<?>) o; int s = size(); if (s != l.size()) return false; if (l instanceof LongList) { final LongListIterator i1 = listIterator(), i2 = ((LongList) l).listIterator(); while (s-- != 0) if (i1.nextLong() != i2.nextLong()) return false; return true; } final ListIterator<?> i1 = listIterator(), i2 = l.listIterator(); while (s-- != 0) if (!valEquals(i1.next(), i2.next())) return false; return true; } /**
return 0; if (l instanceof LongList) { final LongListIterator i1 = listIterator(), i2 = ((LongList) l).listIterator(); int r; long e1, e2;
/** * Construct a new key index. It maps each long key to its position in the list. * * @param keys The list of keys to store. */ FrozenHashKeyIndex(LongList keys) { keyList = new LongArrayList(keys); indexMap = new Long2IntOpenHashMap(keys.size()); indexMap.defaultReturnValue(-1); LongListIterator iter = keys.listIterator(); while (iter.hasNext()) { int idx = iter.nextIndex(); long key = iter.next(); int old = indexMap.put(key, idx); if (old >= 0) { throw new IllegalArgumentException("key " + key + " appears multiple times"); } } }
/** * Compute the ranks for a list of longs. * @param results The list of longs. * @return The map of ranks; its default return value will be -1. */ public static Long2IntMap itemRanks(LongList results) { Long2IntMap ranks = new Long2IntOpenHashMap(results.size()); ranks.defaultReturnValue(-1); LongListIterator iter = results.listIterator(); while (iter.hasNext()) { int i = iter.nextIndex(); long val = iter.nextLong(); ranks.put(val, i); } return ranks; }