Java:如何对自定义类型 ArrayList 进行排序

标签 java collections arraylist quicksort mergesort

我有一个自定义类型 Position(x,y,z) ,现在我创建一个 ArrayList<Position> ,我想按 z 的值从小到大对这个数组进行排序,我该如何使用 Collections.sort 来做到这一点?还是有其他高效的排序方法?

当我尝试使用

public class PositionComparator implements Comparator<Position> {

        @Override
        public int compare(Position o1, Position o2) {
            // TODO Auto-generated method stub
            return o1.height().compareTo(o2.height());

        }

    }

得到一个错误

Cannot invoke compareTo(double) on the primitive type double

最佳答案

尝试

Collections.sort(SortList, new Comparator<Position>(){
            public int compare(Position p1, Position p2) {
                return p1.z- p2.z;
            }
        });

关于Java:如何对自定义类型 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064109/

相关文章:

java - 使用 oauth 2 向 c2dm 发送消息并收到 401

c# - 为什么 Array.IndexOf 不像 List<T> 那样检查 IEquatable?

java - 在组成该文本的 fragment 数组列表中查找文本 fragment (文本中的选择)的最佳方法是什么?

Java 数组列表包含并设置值

java - Rxjava2 distinctUntilChanged() 第一次后无法正常工作

java - 在 java 1.4 中以编程方式设置 SOAP 绑定(bind) 1.2

java - 为什么集合会返回无序值,即使它在内部实现了 HashMap?

c# - 无法在 SortedList C# 中添加数据

java - Java 中按日期顺序对 List<String[]> 进行排序

java - 为什么要在 AbstractList 迭代器的remove()方法中检查if(lastRet <cursor)?