Есть ли способ получить случайные строки из Trove (TObjectIntHashMap)? Я использую Random, чтобы проверить, как быстро Trove может искать/загружать 10 000 строк. В частности, я хотел бы передать случайное целое число и попросить Trove искать/загружать эту строку. Я пробовал использовать метод get(), но для этого требуется передать строку, а не случайный int. Я также рассматривал использование ключей() для возврата массива и чтения из этого массива, но это могло бы победить цель, поскольку я не буду читать непосредственно из Trove. Вот мой код:Получение случайных строк из Trove (TObjectIntHashMap)?
import java.io.IOException;
import java.util.List;
import java.util.Random;
import com.comScore.TokenizerTests.Methods.TokenizerUtilities;
import gnu.trove.TObjectIntHashMap;
public class Trove {
public static TObjectIntHashMap<String> lines = new TObjectIntHashMap<String>();
public static void TroveMethod(List<String> fileInArrayList)
throws IOException {
TObjectIntHashMap<String> lines = readToTrove(fileInArrayList);
TokenizerUtilities.writeOutTrove(lines);
}
public static TObjectIntHashMap<String> readToTrove(
List<String> fileInArrayList) {
int lineCount = 0;
for (int i = 0; i < fileInArrayList.size(); i++) {
lines.adjustOrPutValue(fileInArrayList.get(i), 1, 1);
lineCount++;
}
TokenizerUtilities.setUrlInput(lineCount);
return lines;
}
public static void loadRandomMapEntries() {
Random rnd = new Random(lines.size());
int loadCount = 10000;
for (int i = 0; i < loadCount; i++) {
lines.get(rnd);
}
TokenizerUtilities.setLoadCount(loadCount);
}
}
Метод в вопросе loadRandomMapEntries(), в частности, для петли. Любая помощь приветствуется. Благодаря!
Спасибо за быстрый ответ! Я выполнил шаги 1 и 2, но мне трудно понять, как искать ключ, используя значение. Я наткнулся на ваш другой ответ [здесь] (http://stackoverflow.com/questions/26120131/tintobjecthashmap-get-key-for-given-value). Однако при выполнении этого же точный код, я получаю другую ошибку при forEachEntry: «Метод forEachEntry (TObjectIntProcedure) в типе TObjectIntHashMap не применяется для аргументов (новый TIntObjectProcedure () {})» Do вы знаете, почему это может быть? Еще раз спасибо, Роб! –
TLe
Рад помочь! Ваши «Объект» и «Int» меняются на ваш вопрос. Я не уверен, что это опечатка или настоящая проблема. [Вот код] (http://pastebin.com/pYQnbkkE), который выполняет поиск ключей. Надеюсь, поможет! –