Comparator接口的使用方法

来源:互联网 发布:卫生间js防水技术交底 编辑:程序博客网 时间:2024/06/01 21:19

本文用一个小例子来阐述Comparator接口的使用方法。


主要是两个JAVA文件。

SortUtils.java: 实现接口、以及具体使用的例子

import java.util.Collections;import java.util.Comparator;import java.util.List;public class SortUtils {enum SortType {SORT_TYPE_CASE_SENSITIVE,SORT_TYPE_CASE_INSENSITIVE};private static Comparator<String> caseSensitiveComparator = new Comparator<String> () {public int compare(String s1, String s2) {return s1.compareTo(s2);}};private static Comparator<String> caseInsensitiveComparator = new Comparator<String>() {public int compare(String s1, String s2) {return s1.compareToIgnoreCase(s2);}};public static void sort(List<String> values, SortType sortType) {switch (sortType) {case SORT_TYPE_CASE_SENSITIVE:Collections.sort(values, caseSensitiveComparator);return;case SORT_TYPE_CASE_INSENSITIVE:Collections.sort(values, caseInsensitiveComparator);return;default:// Unreachable herereturn;}}}

SortTest.java: 对上述代码进行验证的代码

import java.util.ArrayList;import java.util.List;public class SortTest {public static void main(String[] args) {List<String> values = new ArrayList<String>();values.add("first");values.add("second");values.add("third");values.add("FIRST");values.add("SECOND");values.add("THIRD");test("case sensitive", values, SortUtils.SortType.SORT_TYPE_CASE_SENSITIVE);test("case insensitive", values, SortUtils.SortType.SORT_TYPE_CASE_INSENSITIVE);}private static void test(String testcaseName, List<String> values, SortUtils.SortType sortType) {System.out.println(testcaseName);dump("    before: ", values);SortUtils.sort(values, sortType);dump("    after: ", values);}private static void dump(String title, List<String> values) {System.out.print(title);for (String s : values) {System.out.print(s);System.out.print(" ");}System.out.println();}}

执行结果:

case sensitive    before: first second third FIRST SECOND THIRD     after: FIRST SECOND THIRD first second third case insensitive    before: FIRST SECOND THIRD first second third     after: FIRST first SECOND second THIRD third 





0 0
原创粉丝点击