我希望能够使用PersonCollection类比较Person对象,这意味着,我不希望Person类实现可比接口,我希望PersonCollection实现比较器接口。
我做那件事有困难。我已经实现了compare方法,但当我比较Person对象时,它仍然不起作用。
例如,这段代码给了我一个错误(people是ArrayList
public void insert (Person p){
for(int i = 0; i < people.size(); i++){
if (people.get(i) > p){
//Do something
}
}
}
我知道如何使用比较器进行排序,这是不同的。我完全知道其他可能的,也许更好的解决方案(任何优先级队列类或某种sortedset类)
出于特定的原因,我希望为ArrayList这样做,我恳请您将您的解决方案建立在此基础上,而不是建议使用其他数据结构。
您可以编写自定义的比较器
并使用compare(a,b)
方法。
https://docs.oracle.com/javase/8/docs/api/java/util/comparator.html#compare-t-t-
您的代码看起来像
if (myComparator.compare(people.get(i), p) > 0 ) {
问题内容: 我学会了如何使用可比对象,但是在使用比较器时遇到了困难。我的代码有错误: 这是我的代码: 我相信它必须与比较方法中的转换有关,但我一直在玩,但仍然找不到解决方案 问题答案: 你的示例类有几件尴尬的事情: 它有个和时称为人(更多用于对象,而不是人); 当将一个类命名为某个事物的复数形式时,这表明它是对多个事物的抽象。 无论如何,这是如何使用的演示: 编辑 等效的Java 8演示如下所示:
问题内容: 我有一个浮点数组和一个字符串数组。每个浮点值都与特定的String匹配。我想使用以下方式对保留自己的字符串的float数组进行排序: 这是代码: 如何排序并保留自己的字符串? 非常感谢。 问题答案:
我正在使用一个列表 我的代码如下-
我正在初始化一个优先级队列,如下所示: 我的比较器类的代码是: 运行模拟后,元素根本没有排序——它们是随机的;我在我的FuelPriority类的compare方法中设置了一个断点,但它根本没有被调用。我错过什么了吗?
我使用Java Comparator按照单词频率属性的降序对单词对象的ArrayList进行排序。Word对象是通过首先使用hashmap从数据库中读取单词来创建的。txt文件,然后将hashmap转换为Word对象的ArrayList。然后我想按字母顺序对频率相同的单词进行排序。
本文向大家介绍JAVA对list集合进行排序Collections.sort(),包括了JAVA对list集合进行排序Collections.sort()的使用技巧和注意事项,需要的朋友参考一下 对一个集合中的对象进行排序,根据对象的某个指标的大小进行升序或降序排序。代码如下: 进行降序排列 进行升序排列 经过测试发现,只需要把两个对象的位置调换一下即可升序或降序。 如果指标相同,根据多个指标进行