java - 使用具有浮点值的对象对集合进行排序

标签 java list object collections comparator

假设我有一个类:

class Area{
  String id;
  Float value;
  int startTime;
  int endTime;
  Map<Integer, List<scheduleRequest>> timeSlotMap;
}

我想根据 float 的值对区域进行排序。

我试过这个:

class Value implements Comparator<Area>{

  @Override
  public int compare(Area a1, Area a2) {
       return (int)(a1.value-a2.value); I also tried this
  }
}

主要是

    Area area1=new Area();
    area1.value=(float) 1.0;
    Area area2=new Area();
    area2.value=(float) 0.8;
    Area area3=new Area();
    area3.value=(float) 0.6;
    List<Area> list=new ArrayList<>();
    list.addAll(Arrays.asList(area2,area1,area3));
    Collections.sort(list, new Value());

但是,列表未排序。

最佳答案

尝试使用:

Math.round(a1.value-a2.value);

代替:

(int)(a1.value-a2.value);

关于java - 使用具有浮点值的对象对集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367939/

相关文章:

C#:将成员变量放入列表中

python - 如何将对象类附加到列表?

javascript - 如何调用一组对象中同一列的属性? ( Node .js)

C++ 对象数组。一个元素访问数组中另一个元素的方法

android - 如何在整个应用程序中保持 XMPP 连接有效?

java - 正则表达式在java中不起作用

java - 安装第 3 方 JAR

java - 定位 fragment 内回收器 View 项内的按钮监听器

Java Enum<T> 与 T 作为变量类型

python 2 : How can I edit each part of my set object?