for(int i=1;i<monkeys.length;i++)
{
int height=monkeys[i].height;
String id=monkeys[i].id;
int index=i-1;
while(index>=0&&monkeys[index].height>height)
{
monkeys[index+1].height=monkeys[index].height;
monkeys[index+1].id=monkeys[index].id;
index--;
}
monkeys[index+1].height=height;
monkeys[index+1].id=id;
}
注:monkeys里装有五个类,每个类有id(分别1到5)和不同的height.共两个属性。
问题是,比如第一个元素height是5,第二个是0的话,在 monkeys[index+1].height=monkeys[index].height;这句话里,0不救被5覆盖掉了?
求助啊,,很是不理解

------解决思路----------------------
index--;
}
monkeys[index+1].height=height;
monkeys[index+1].id=id;
}
这块把后一个的值又给了前一个了
------解决思路----------------------
楼主仔细查看一下数组下标,循环开始的时候是将数组的第二个元素值赋给Height 和id,不会出现第二个元素0被第一个元素5覆盖!