【发布时间】:2017-04-19 15:56:37
【问题描述】:
if (value.compareTo(elementData[size]) >= 0) {
elementData[size + 1] = value;
size++;
} else if (value.compareTo(elementData[0]) <= 0) {
for (int i = size; i >= 0; i--) {
elementData[i + 1]= elementData[i];
}
elementData[0] = value;
size++;
}
第一个 if 语句应该从 compareTo 返回一个正数。我已经调试并确认它确实返回了一个正数但是它没有进入块。
我正在比较类似“str1”“str2”......等的字符串。它工作正常,直到我到达“str10”并且必须将它与“str9”进行比较。它是说“str10”小于“str9”这有什么意义吗?
每 10 次迭代发生一次。所以我的数组看起来像 [str0, str1, str10...str19,str2, str20, str21, ... str29..etc]
【问题讨论】:
-
如果
value.compareTo(elementData[size])返回一个大于0的值,那么它会进入区块。如果不入块,则该值小于0。value和elementData的类型是什么? -
你不知道1在9之前吗?
-
值和元素数据都是可比较的对象。
标签: java if-statement compareto