我正在排序包含Calendar對象的對象的ArrayList。我希望根據調用排序方法時使用的參數對ArrayList進行升序或降序排序。通過Collection接口拒絕的索引向ArrayList添加元素
@Override
public Collection<TwitterMessage> sortByTime(boolean newestFirst) {
Collection<TwitterMessage> results = new ArrayList<>();
for (int i = 0; i < tweets.size(); i++) {
TwitterMessage tweet1 = tweets.get(i);
TwitterMessage tweet2 = tweets.get(i+1);
if(newestFirst = true) {
if(tweet1.dato().compareTo(tweet2.dato()) >= 0) {
results.add(0, tweet1);
}
}
else {
if(tweet1.dato().compareTo(tweet2.dato()) <= 0) {
results.add(0, tweet1);
}
}
}
return results;
}
我認爲這種方法是正確的。問題是在界面中指定的returntype是基於Collection接口的。我得到一個錯誤compilaton在
results.add(0, tweet1);
線,因爲Collection接口只允許results.add(對象),而不是results.add(INT,對象)作爲一個ArrayList一樣。有沒有辦法將對象添加到索引中,即使這不在Collection接口中?
另外'if(newestFirst = true)',肯定不是你要找的。它應該是'if(newestFirst == true)',或者甚至更好'if(newestFirst)'。 –