У меня вопрос об использовании MapDB, особенно о запросах подкарта. Я беру фрагмент кода из официального примера в https://github.com/jankotek/MapDB/blob/release-1.0/src/test/java/examples/TreeMap_Composite_Key.java. Этот пример легко понять. В целях тестирования я заменил ключевые части «Город» и «Улица» и скорректировал вызов submap
так же. К сожалению, теперь карта не ограничена вызовом submap
. Вместо этого возвращается вся карта (200 записей). Ниже приведены адаптированные фрагменты кода (из приведенного выше примера)MapDB - поведение подкачки
// Initializing map
for (final String town : towns) {
for (final String street : streets) {
for (final int houseNum : houseNums) {
final Fun.Tuple3<String, String, Integer> address = Fun.t3(street, town,
houseNum);
final int income = r.nextInt(50000);
map.put(address, income);
}
}
}
...
final Map<Fun.Tuple3, Integer> housesInCong = map.subMap(
Fun.t3(null, "Cong", null), Fun.t3(Fun.HI, "Cong", Fun.HI));
//housesInCong.size() == 200 (should be 40)
System.out.println("There are " + housesInCong.size()+ " houses in Cong");
Может кто-нибудь объяснить мне, почему это происходит и как этого можно избежать? У меня есть аналогичный вариант использования в моем проекте.
Заранее спасибо и касается :)