gpt4 book ai didi

java - 通过 Collection 接口(interface)拒绝的索引向 ArrayList 添加元素

转载 作者:行者123 更新时间:2023-12-01 18:36:14 25 4
gpt4 key购买 nike

我正在对包含日历对象的对象的 ArrayList 进行排序。我希望根据调用排序方法时使用的参数对 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;
}

我认为这个方法是正确的。问题在于 Interface 中指定的返回类型是基于 Collection 接口(interface)的。我在

上遇到编译错误
results.add(0, tweet1);

行,因为 Collection 接口(interface)只允许 results.add(object),而不像 ArrayList 那样允许 results.add(int, object)。有没有办法可以将对象添加到索引中,即使这不在 Collection 接口(interface)中?

最佳答案

只需将变量声明为列表即可:

List<TwitterMessage> results = new ArrayList<>();

要对列表进行排序,您应该使用Collections.sort(),传递自定义比较器作为参数。

关于java - 通过 Collection 接口(interface)拒绝的索引向 ArrayList 添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com