【问题标题】:Sorting ArrayList by string values as double按字符串值对 ArrayList 排序为双精度
【发布时间】:2020-03-31 15:38:39
【问题描述】:

我需要按某个值对 ArrayList 进行排序。

在这种情况下,列表对象 getUsers23 是一个字符串,但我需要将该值作为双精度值进行比较。

示例值或 getUser23 = "67.455432434234"

目前,使用 Collections.sort() 对 arrayList 进行排序是通过 getUser23 将 arrayList 排序为字符串值:

  Collections.sort(spotsList1, new Comparator<Spots>(){
            public int compare(Spots obj1, Spots obj2) {

                return obj1.getUsers23().compareToIgnoreCase(obj2.getUsers23()); 

            }
        });

【问题讨论】:

  • 你的问题不清楚。您的对象中是否针对 getUser23 存储了 67.455432434234?
  • @RajenRaiyarela,是的,但作为字符串值
  • 如果你有 getter,那么你可以像 @Farid 提到的那样做 Double.valueOf("67.455432434234") 或 Double.parseDouble("67.455432434234") 转换为双精度然后比较
  • 使用 'Double.parseDouble(getUsers23())' 将字符串转换为双精度然后比较它们
  • @RajenRaiyarela。就在退货之前还是退货内部?

标签: android arraylist


【解决方案1】:

您可以转换为双精度,然后进行比较。

将比较器内的代码修改为

try{
    return Double.valueOf(obj1.getUsers23()).compareTo(Double.valueOf(obj2.getUsers23()));
}catch (Exception e){
   return -1;
} 

【讨论】:

  • 让我试试
猜你喜欢
  • 2012-11-06
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2015-07-08
  • 2020-05-07
  • 2012-12-24
  • 2014-09-06
  • 2015-10-16
相关资源
最近更新 更多