public DoubleToIdMap() { _valueToIdMap = new Double2IntOpenHashMap(); _valueToIdMap.defaultReturnValue(INVALID_KEY); _idToValueMap = new DoubleArrayList(); }
/** * Constructor for the class. * Populates the value <-> mappings. * * @param dataBuffer Pinot data buffer * @param length Length of the dictionary */ public OnHeapDoubleDictionary(PinotDataBuffer dataBuffer, int length) { super(dataBuffer, length, Double.BYTES, (byte) 0); _valToDictId = new Double2IntOpenHashMap(length); _valToDictId.defaultReturnValue(-1); _dictIdToVal = new double[length]; for (int dictId = 0; dictId < length; dictId++) { double value = getDouble(dictId); _dictIdToVal[dictId] = value; _valToDictId.put(value, dictId); } }
numValues = sortedDoubles.length; Preconditions.checkState(numValues > 0); _doubleValueToIndexMap = new Double2IntOpenHashMap(numValues);
Double2IntOpenHashMap doubleMap = new Double2IntOpenHashMap(); doubleMap.defaultReturnValue(INVALID_ID); map = doubleMap;
private UniqueDouble(Var var, boolean sorted) { super(sorted); DoubleOpenHashSet keySet = new DoubleOpenHashSet(); for (int i = 0; i < var.rowCount(); i++) { keySet.add(var.getDouble(i)); } double[] elements = keySet.toDoubleArray(); if (sorted) { DoubleArrays.quickSort(elements, new UniqueDoubleComparator()); } Double2IntOpenHashMap uniqueKeys = new Double2IntOpenHashMap(); values = new DoubleArrayList(elements); for (int i = 0; i < elements.length; i++) { uniqueKeys.put(elements[i], i); } rowLists = new Int2ObjectOpenHashMap<>(); for (int i = 0; i < var.rowCount(); i++) { double key = var.getDouble(i); int id = uniqueKeys.get(key); if (!rowLists.containsKey(id)) { rowLists.put(id, new IntArrayList()); } rowLists.get(id).add(i); } updateIdsByRow(var.rowCount()); }