ArrayList排序
今天发现,ArrayList 排序不满足期望。
起先,List是这样Before sort: [1, @I, am, Love, java, very, Much]
使用Collections.sort()方法排后是这样
After sort: [1, @I, Love, Much, am, java, very]
顺序:数字-非数字和字母字符-大写字符串(A-Z)-小写字符串(a-z)
期望的是按照字母顺序,忽略大小写
After override sort method: [1, @I, am, java, Love, Much, very]
所以只能Override sort方法
ArrayList<String> list=new ArrayList<String>(); list.add("1"); list.add("@I"); list.add("am"); list.add("Love"); list.add("java"); list.add("very"); list.add("Much"); System.out.println("Before sort: "+list); Collections.sort(list); System.out.println("After sort: "+list); Collections.sort(list,new Comparator<Object>(){ @Override public int compare(Object obj1, Object obj2) { return ((String) obj1).toUpperCase().compareTo(((String) obj2).toUpperCase()); } }); System.out.println("After override sort method: "+list); Collections.reverse(list); System.out.println("After reverse: "+list);
运行结果如下:
Before sort: [1, @I, am, Love, java, very, Much]
After sort: [1, @I, Love, Much, am, java, very]
After override sort method: [1, @I, am, java, Love, Much, very]
After reverse: [very, Much, Love, java, am, @I, 1]
转载请注明出处:http://www.cnblogs.com/tobecrazy/

软件测试交流QQ群:312937087 we are QA!
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义