按自然数对自定义列表视图进行排序

时间:2019-01-15 03:04:14

标签: java android sorting

enter image description here

我想对类似的自然数进行排序,但是Collection.sort()对1,10,11,12,...,2,20,21,22,..进行排序。 如何对相似的自然数进行排序?

This is my code for sorting 这是我的排序代码

2 个答案:

答案 0 :(得分:0)

好像您的集合是字符串的集合,只需将其映射为int或使用“ order:Int”和“ label:String”字段创建一个类持有者,然后尝试使用“ order”字段进行排序。

答案 1 :(得分:0)

据我了解,这个问题。您需要过滤器而不是排序来实现此目的。 如果您使用的是RecyclerView,则可以按以下步骤实现

您必须在模型文件中存储一个如下所示的整数。

Model.java

int fileCount = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories).Length; // Will Retrieve count of all files in directry and sub directries

int fileCount = Directory.GetFiles(path, "*.*", SearchOption.TopDirectory).Length; // Will Retrieve count of all files in directry but not sub directries

int fileCount = Directory.GetFiles(path, "*.xml", SearchOption.AllDirectories).Length; // Will Retrieve count of files XML extension in directry and sub directries

以便您可以检查是否在想要的跨度之间。像这样

public class model {

private String name;
private int no;

public model(String name, int no) {
    this.name = name;
    this.no = no;
}

public String getName() {
    return name;
}

public int getNo() {
    return no;
}
}

这将为您提供一个arrayList,其中包含您想要的过滤成员。根据需要将它们放在活动中。另外,如果您使用的是recyclerView,这就是private void filterNaturalNo (ArrayList<model> models){ ArrayList<model> filteredList = new ArrayList<>(); for (model model: models){ if (model.getNo() < 5 && model.getNo() > 1){ filteredList.add(model); } } adapter.refreshAdapter(filteredList); } 的样子。

adapter.refreshAdapter(filteredList);

必须进行细微更改,才能确保正常工作。祝你好运