对具有密钥的集合进行排序

时间:2018-04-12 21:39:02

标签: java android collections

我使用此代码对具有键类型的键的集合进行排序:

class Myclass { 
    String Key;
    other variables
}

Collection的定义如下:

ArrayList<Myclass> MyCollection = new ArrayList<MyClass>();

我向MyColletion添加了一些项目,最后对集合进行了排序:

Collections.sort(MyCollection, new Comparator<MyClass>() {
    @Override public int compare(MyClass c1, MyClass c2) {
        return  c1.Key.compareToIgnoreCase(c2.Key);
    }
});

如果密钥是字符串,则此代码可以对集合进行排序和排序。但是我想把我的密钥改成长,所以这个类看起来像这样:

class Myclass { 
    long Key;
    other variables
}

我无法找到将密钥作为长类型对集合进行排序的代码。它应该与旧的Android apis一起工作,而不是19。

2 个答案:

答案 0 :(得分:1)

您可以像这样使用Long.compare

  app.get('/random', renderMyAngularBootstrap)

如果较旧的Android apis不支持上述内容,则可以执行以下操作:

/random

答案 1 :(得分:0)

注意:这个比较器不能用于原始数据类型,如int,long,double,但是如果使用包装类,我会给出这个解决方案,这可能很有用

对于排序列表值的通用方法,您可以使用此比较器

  if (ItemObject->Name == "I") {
     ShowMessage("Item Image clicked");
  }
  if (ItemObject->Name == "T") {
     ShowMessage("Item Text clicked");
  }
  if (ItemObject->Name == "A") {
     ShowMessage("Item Accessory clicked");
  }

并在您的班级中使用

public class Genericcomparator<T extends Myclass> implements Comparator<T>  {

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

所以当你改变数据类型时,比较它就没有问题