如何比较 TreeMap 中的两个值?
How to compare two values in TreeMap?
我有一个 TreeMap,我想比较其中的 i
和 i+1
值。我怎样才能做到这一点。我知道 TreeMap 是根据其键排序的,但我想比较值并且不能使用排序,因为我会丢失原始形式。我想要这样的东西但是在 TreeMap-
int a[] = new int[n];
for (int i = 0; i < a.length - 1; i++)
{
if (a[i] > a[i + 1])
{
c++;
}
}
好吧,你可以这样做:
TreeMap<Integer,Integer> tree=new TreeMap<>();
tree.put(1,5);
tree.put(2,6);
tree.put(3,4);
tree.put(4,4);
Entry<Integer,Integer> entry=tree.firstEntry();
int c=0;
while(tree.higherEntry(entry.getKey())!=null) {
if(entry.getValue()>tree.higherEntry(entry.getKey()).getValue())
c++;
entry=tree.higherEntry(entry.getKey());
}
使用higherEntry、higherKey等
顺便说一句,在你的例子中你会得到一个 ArrayIndexOutOFBound 我认为是因为 a[i + 1]
我有一个 TreeMap,我想比较其中的 i
和 i+1
值。我怎样才能做到这一点。我知道 TreeMap 是根据其键排序的,但我想比较值并且不能使用排序,因为我会丢失原始形式。我想要这样的东西但是在 TreeMap-
int a[] = new int[n];
for (int i = 0; i < a.length - 1; i++)
{
if (a[i] > a[i + 1])
{
c++;
}
}
好吧,你可以这样做:
TreeMap<Integer,Integer> tree=new TreeMap<>();
tree.put(1,5);
tree.put(2,6);
tree.put(3,4);
tree.put(4,4);
Entry<Integer,Integer> entry=tree.firstEntry();
int c=0;
while(tree.higherEntry(entry.getKey())!=null) {
if(entry.getValue()>tree.higherEntry(entry.getKey()).getValue())
c++;
entry=tree.higherEntry(entry.getKey());
}
使用higherEntry、higherKey等
顺便说一句,在你的例子中你会得到一个 ArrayIndexOutOFBound 我认为是因为 a[i + 1]