[英]Sorting List ascending and descending android java
我有一个包含数据的List<>
。 如何对它进行升序和降序排序?
List<Data> data = new ArrayList<>();
data.add(new Data("Batman vs Superman", "Following the destruction of Metropolis, Batman embarks on a personal vendetta against Superman ", R.drawable.ic_action_movie));
data.add(new Data("X-Men: Apocalypse", "X-Men: Apocalypse is an upcoming American superhero film based on the X-Men characters that appear in Marvel Comics ", R.drawable.ic_action_movie));
data.add(new Data("Captain America: Civil War", "A feud between Captain America and Iron Man leaves the Avengers in turmoil. ", R.drawable.ic_action_movie));
data.add(new Data("Kung Fu Panda 3", "After reuniting with his long-lost father, Po must train a village of pandas", R.drawable.ic_action_movie));
data.add(new Data("Warcraft", "Fleeing their dying home to colonize another, fearsome orc warriors invade the peaceful realm of Azeroth. ", R.drawable.ic_action_movie));
data.add(new Data("Alice in Wonderland", "Alice in Wonderland: Through the Looking Glass ", R.drawable.ic_action_movie));
这是我的数据课
public class Data {
public String title;
public String description;
public int imageId;
Data(String title, String description, int imageId) {
this.title = title;
this.description = description;
this.imageId = imageId;
}
}
让您的类实现Comparable
接口,这可以让Java处理大部分繁重的工作。
public class Data implements Comparable<Data>{
@Override
public int compareTo(Data another) {
return this.title.compareTo(another.title);
// can also compareToIgnoreCase if not case sensitive
}
}
然后只需调用Collections.sort(data);
这将根据Data类中的compareTo
函数对数据进行排序。
您可以使用Java8,如下所示:
data.sort((数据d1,数据d2)-> d1.title.compareTo(d2.title));
在您的代码中,我建议不要直接使用“ public”公开类字段,而应使用getter和setter(封装字段)。
data.sort((数据d1,数据d2)-> d1.getTitle()。compareTo(d2.getTitle()));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.