Я пытаюсь решить проблему программирования с помощью TreeMap, что привело меня к публикации этого вопроса.
Я определил treeMap с (Int, Int) в качестве ключа и String в качестве значения,определили упорядочение treeMap на основе первого элемента кортежа.и я вставил два элемента разных Key, но окончательный treeMap содержит только один элемент. Это определенное поведение treeMap
Scala Code: (Версия: 2.12.3)
val a = scala.collection.mutable.TreeMap[(Int, Int), String]()(Ordering.by(x => x._1))
a.put((9, 21), "value-1")
a.put((9, 10), "value-2")
println(a.size) // 1
Я пробовал ту же реализацию в Java, но он сообщает о размере карты, как 2 вот мой код Java:
Может кто-нибудь предложить, если я что-то упускаю
import java.util.Comparator;
import java.util.TreeMap;
public class JavaTreeMapTest {
public static void main(String[] args) {
class Tuple {
Integer a;
Integer b;
public Tuple(Integer a, Integer b) {
this.a = a;
this.b = b;
}
}
Comparator<Tuple> testComparator = new Comparator<Tuple>() {
@Override
public int compare(Tuple arg0, Tuple arg1) {
if (arg0.a > arg1.a) {
return arg0.a;
} else
return arg1.a;
}
};
TreeMap<Tuple, String> tm = new TreeMap<Tuple, String>(testComparator);
tm.put(new Tuple(100, 100), "value-1");
tm.put(new Tuple(100, 101), "value-2");
System.out.println(tm.size()); //2
}
}