首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按字母顺序对arraylist排序(不区分大小写)

按字母顺序对arraylist排序(不区分大小写)
EN

Stack Overflow用户
提问于 2011-04-28 15:55:48
回答 8查看 261.7K关注 0票数 128

我有一个字符串数组names,它包含人名。我想按字母顺序对数组列表进行排序。

代码语言:javascript
复制
ArrayList<String> names = new ArrayList<String>();
names.add("seetha");
names.add("sudhin");
names.add("Swetha");
names.add("Neethu");
names.add("ananya");
names.add("Athira");
names.add("bala");
names.add("Tony");
names.add("Karthika");
names.add("Nithin");
names.add("Vinod");
names.add("jeena");
Collections.sort(names);
for(int i=0; i<names.size(); i++)
    System.out.println(names.get(i));

我试着用上面的方式对列表进行排序。但它将排序后的数组显示为:

代码语言:javascript
复制
Athira
Karthika
..
..
ananya
bala
...

但我不想让它区分大小写。我想要的结果是:

代码语言:javascript
复制
ananya
Athira
bala
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-04-28 15:59:25

自定义Comparator应该会有所帮助

代码语言:javascript
复制
Collections.sort(list, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.compareToIgnoreCase(s2);
    }
});

或者,如果您使用的是Java 8:

代码语言:javascript
复制
list.sort(String::compareToIgnoreCase);
票数 345
EN

Stack Overflow用户

发布于 2012-04-23 04:55:19

最简单的做法是:

代码语言:javascript
复制
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
票数 200
EN

Stack Overflow用户

发布于 2012-04-26 20:03:24

试试这段代码

代码语言:javascript
复制
Collections.sort(yourarraylist, new SortBasedOnName());



import java.util.Comparator;
import com.RealHelp.objects.FBFriends_Obj;
import com.RealHelp.ui.importFBContacts;

public class SortBasedOnName implements Comparator
{
public int compare(Object o1, Object o2) 
{

    FBFriends_Obj dd1 = (FBFriends_Obj)o1;// where FBFriends_Obj is your object class
    FBFriends_Obj dd2 = (FBFriends_Obj)o2;
    return dd1.uname.compareToIgnoreCase(dd2.uname);//where uname is field name
}

}
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5815423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档