我正在排序包含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)'。 –