Java 排序数组列表
我有一个数组列表,我想按字母顺序排序,你能帮我实现吗 提前谢谢Java 排序数组列表,java,android,sorting,arraylist,Java,Android,Sorting,Arraylist,我有一个数组列表,我想按字母顺序排序,你能帮我实现吗 提前谢谢 public ArrayList<ListData> getList(String itemsKey) { if (itemsKey.equalsIgnoreCase(“names”)) { return nameList; } else { return null; } } public ArrayList getList(String itemsKey
public ArrayList<ListData> getList(String itemsKey) {
if (itemsKey.equalsIgnoreCase(“names”)) {
return nameList;
} else {
return null;
}
}
public ArrayList getList(String itemsKey){
if(itemsKey.equalsIgnoreCase(“名称”)){
返回姓名列表;
}否则{
返回null;
}
}
我想返回已排序的姓名列表您可以使用以下命令:
Collections.sort(nameList, String.CASE_INSENSITIVE_ORDER);
它将按字母顺序对字符串进行排序。您可以使用:
Collections.sort(nameList, String.CASE_INSENSITIVE_ORDER);
它将按字母顺序对字符串进行排序。您需要使用自定义的
比较器对该集合进行排序。在不知道您的ListItem
和NameDefinition
类的情况下,很难编写准确的代码,但可能是这样的(假设NameDefinition
有一个name
字段——如果没有,则相应调整):
Collections.sort(名称列表,新比较器()
{
@凌驾
公共整数比较(列表项lhs、列表项rhs)
{
返回String.CASE\u INSENSITIVE\u ORDER.compare(lhs.nameDefinition.name,rhs.nameDefinition.name);
}
});
您需要使用自定义的比较器对该集合进行排序。在不知道您的ListItem
和NameDefinition
类的情况下,很难编写准确的代码,但可能是这样的(假设NameDefinition
有一个name
字段——如果没有,则相应调整):
Collections.sort(名称列表,新比较器()
{
@凌驾
公共整数比较(列表项lhs、列表项rhs)
{
返回String.CASE\u INSENSITIVE\u ORDER.compare(lhs.nameDefinition.name,rhs.nameDefinition.name);
}
});
它说集合不能被应用。它说集合不能被应用applied@JonHudson在你的返回声明之前。您可以在类内创建一个私有类,以便比较器清理代码。@当然,您对私有类的看法是正确的。我只是想在返回语句之前提供尽可能紧凑的代码片段:)@JonHudson。您可以在类内创建一个私有类,以便比较器清理代码。@当然,您对私有类的看法是正确的。我只是想提供尽可能紧凑的代码片段:)