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));
}
}
相關文章
- oracle 不區分大小寫Oracle
- 配置mysql不區分大小寫MySql
- mysql 表明不區分大小寫MySql
- 在oracle10g中可使得排序不區分大小寫Oracle排序
- MySQL不區分大小寫設定MySql
- Nginx支援url不區分大小寫Nginx
- vim 查詢不區分大小寫
- python中不區分大小寫嗎Python
- 設定MYSQL不區分表大小寫MySql
- 配置CaseInsensitiveMap使key不區分大小寫
- 更改MYSQL資料庫不區分大小寫MySql資料庫
- Git 區分大小寫Git
- Nginx實現url請求不區分大小寫Nginx
- MySQL表名不區分大小寫的設定方法MySql
- 最新版idea不區分大小寫設定Idea
- 密碼區分大小寫密碼
- Java區分大小寫字母數字和符號Java符號
- mongodb如何不區分大小寫MongoDB
- MySQL binary 區分大小寫MySql
- MySQL表名區分大小寫MySql
- 查詢區分大小寫 (轉)
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- 設定Oracle的使用者密碼不區分大小寫Oracle密碼
- 使用漢語環境時,grep命令竟然不區分大小寫
- SQL Server 解決不區分中英文大小寫方法SQLServer
- 模糊查詢區分大小寫嗎?
- 短視訊app開發,顯示文字高亮,不區分大小寫APP
- Mysql 的編碼方式使得欄位內容不區分大小寫MySql
- 修改Oracle11g使用者密碼不區分大小寫Oracle密碼
- Sql Server 強制大小寫區分方法SQLServer
- 使MySQL查詢區分大小寫(轉)MySql
- git不區分檔名大小寫這種坑當然要跳出來Git
- MySQL模糊查詢(like)時區分大小寫MySql
- 更改MySql表和欄位區分大小寫MySql
- Java ArrayList 的不同排序方法Java排序
- java arrayList vector 區別Java
- Oracle 11gR2密碼區分大小寫Oracle密碼
- Oracle11g 特性——密碼區分大小寫Oracle密碼