java ArrayList排序不區分大小寫
最近在做程式碼勇士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));
}
}
相關文章
- python中不區分大小寫嗎Python
- MySQL不區分大小寫設定MySql
- Nginx支援url不區分大小寫Nginx
- 配置CaseInsensitiveMap使key不區分大小寫
- 區分大小寫
- Git 區分大小寫Git
- 最新版idea不區分大小寫設定Idea
- [20220826]ls顯示檔案不區分大小寫.txt
- MySQL表名不區分大小寫的設定方法MySql
- SQL Server 解決不區分中英文大小寫方法SQLServer
- mongodb如何不區分大小寫MongoDB
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- 模糊查詢區分大小寫嗎?
- 短視訊app開發,顯示文字高亮,不區分大小寫APP
- java arrayList vector 區別Java
- Git中如何設定區分檔名大小寫Git
- MySQL的where條件字串區分大小寫的問題MySql字串
- python中排序時對大小寫不敏感Python排序
- 從字串A中刪除字串B中存在的字母(不區分大小寫)C語言實現字串C語言
- Oracle靜態監聽中SID_NAME區分大小寫嗎?Oracle
- 關於sqlserver字元型別查詢條件區分大小寫SQLServer字元型別
- Java中Vector和ArrayList的區別Java
- Python實用技法第25篇:正則:以不區分大小寫的方式對文字做查詢和替換Python
- Mysql 分組排序的sql寫法MySql排序
- ts - 兩種方法實現忽略大小寫的字串排序字串排序
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- Java集合——ArrayListJava
- JAVA集合-ArrayListJava
- Http 請求 header 大小寫有區別嗎?HTTPHeader
- java複習之 Vector、ArrayList和LinkedList 的區別Java
- 【java】【集合】去除ArrayList中的元素、ArrayList巢狀ArrayListJava巢狀
- 用Java語言寫氣泡排序Java排序
- Java利用Comparator實現分組排序Java排序
- [Java基礎]ArrayListJava
- Java ArrayList 與 LinkedListJava
- 【Java集合】2 ArrayListJava
- Java 集合之ArrayListJava
- Java集合之ArrayListJava