java ArrayList排序不区分大小写
来源:互联网 发布:mac系统删除文件 编辑:程序博客网 时间:2024/06/05 06:54
最近在做代码勇士codewars的题目,顺便记录一下自己的解决方案。
1.排序类
1.1 不使用预定义比较器
package com.dylan.practice;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;/** * 不区分大小写的升序排序List * @author xusucheng * @create 2017-11-23 **/public class Sorter { public static List<String> sort(List<String> textbooks) { Collections.sort(textbooks, new Comparator<String>(){ public int compare(String s1, String s2) { return s1.toUpperCase().compareTo(s2.toUpperCase()); } }); return textbooks; } public static void main(String[] args) { List<String> unsort = new ArrayList<String>(); for (String s : new String[]{"Algebra", "History", "Geometry", "english"}) { unsort.add(s); } System.out.println(sort(unsort)); } //自定义比较类 /*static class SortCaseNoSensitive implements Comparator<String>{ public int compare(String s1, String s2) { return s1.toUpperCase().compareTo(s2.toUpperCase()); } }*/}
1.2 使用预定义比较器
import java.util.ArrayList;import java.util.Collections;class Sorter { public static ArrayList<String> sort(ArrayList<String> textbooks) { Collections.sort(textbooks, String.CASE_INSENSITIVE_ORDER); System.out.println(textbooks); return textbooks; }}
2.测试类
/** * @author xusucheng * @create 2017-11-24 **/import com.dylan.practice.Sorter;import org.junit.Test;import static org.junit.Assert.assertEquals;import org.junit.runners.JUnit4;import java.util.ArrayList;import java.util.Collections;import java.lang.Math;public class SortingTest { @Test public void basicTest() { ArrayList<String> sorted = new ArrayList<String>(); ArrayList<String> strs = new ArrayList<String>(); for(String s : new String[] {"Algebra", "History", "Geometry", "English"}) strs.add(s); for(String s : new String[] {"Algebra", "English", "Geometry", "History"}) sorted.add(s); assertEquals(sorted, Sorter.sort(strs)); } @Test public void capitalizationTest() { ArrayList<String> sorted = new ArrayList<String>(); ArrayList<String> strs = new ArrayList<String>(); for(String s : new String[] {"Algebra", "history", "Geometry", "english"}) strs.add(s); for(String s : new String[] {"Algebra", "english", "Geometry", "history"}) sorted.add(s); assertEquals(sorted, Sorter.sort(strs)); } @Test public void symbolsTest() { ArrayList<String> sorted = new ArrayList<String>(); ArrayList<String> strs = new ArrayList<String>(); for(String s : new String[] {"Alg#bra", "$istory", "Geom^try", "**English"}) strs.add(s); for(String s : new String[] {"$istory", "**English", "Alg#bra", "Geom^try"}) sorted.add(s); assertEquals(sorted, Sorter.sort(strs)); }}
阅读全文
0 0
- java ArrayList排序不区分大小写
- 不区分字母大小写排序
- Java replaceAll不区分大小写
- 不区分大小写对字符串列表排序
- 对于Map不区分大小写排序
- java实现不区分大小写替换
- java 不区分大小写 高亮替换
- JAVA正则表达式不区分大小写
- java中replaceAll不区分大小写替换
- java 不区分KEY大小写的MAP
- java 不区分KEY大小写的MAP
- java 不区分KEY大小写的MAP
- 不区分大小写
- 域名不区分大小写
- Mysql 不区分大小写
- sql不区分大小写
- mysql 不区分大小写
- binary_search不区分大小写
- 子线程真的不能更新UI吗?
- CodeForces
- 如何下载并安装maven,以及在eclipse中的使用
- Learn iOS Application Distribution.pdf 英文原版 免费下载
- 4.3 构造方法与对象的创建
- java ArrayList排序不区分大小写
- 搜索策略实现-DFS,BFS,爬山法,分支界限法
- Maven-使用-DskipTests跳过单元测试
- hdu_2014 青年歌手大奖赛_评委会打分
- PL/SQL 如何处理两个timestamp类型的差值
- Webpack 使用小结
- 搜索策略-DFS,BFS,爬山法,分支界限法
- [leetcode] 25. Reverse Nodes in k-Group
- Java基础面试题(JavaWeb)