java - 排序时如何忽略第一个单词

标签 java android sorting

<分区>

我有一个 ListStrings 我想对它们进行排序:

ICD10DatabaseHandler icd10Helper = new ICD10DatabaseHandler(getActivity());
            icd10Helper.open();
            List<Strings> icd10Favorites = icd10Helper.getFavoriteIcd10Tags();
            Collections.sort(icd10Favorites);
            icd10Helper.close();
            return true;

我的问题是我的 Listdescription 之前有一个 id 而我想要生成的是一种 List 忽略元素的第一个单词 (id)。

实际输出

A000 Cholera due to Vibrio cholerae 01 
A010 Typhoid fever with heart involvement
A012 Paratyphoid fever B

期望的输出:

A000 Cholera due to Vibrio cholerae 01 
A012 Paratyphoid fever B
A010 Typhoid fever with heart involvement

最佳答案

如果不能使用java8,需要自己定义Comparator ,例如:

class MyComparator<T> implements Comparator<String> {
    private static String getDescription(String s) {
        // get all String after CODE
        String[] all = s.split(" ", 2);

        // if there is some content
        if (all.length >= 2) 
            // get it in LOWER CASE
            return all[1].toLowerCase();
        else 
            return "";
    }

    public int compare(String s0, String s1) {
        return getDescription(s0).compareTo(getDescription(s1));
    }

}

使用

Collections.sort(elements, new MyComparator<String>());

注意: 如果您必须多次使用,请创建一个实例而不是即时实例化


测试它

public static void main(String[] args) {
    System.out.println("BEFORE SORTING");
    printList(elements);

    Collections.sort(elements, new MyComparator<String>());

    System.out.println("\nAFTER SORTING");
    printList(elements);
}

private static void printList(List<String> list) {
    for (String s : list) {
        System.out.println(s);
    }

}

结果:

BEFORE SORTING
A012 Paratyphoid fever B
A010 Typhoid fever with heart involvement
A000 Cholera due to Vibrio cholerae 01

AFTER SORTING
A000 Cholera due to Vibrio cholerae 01
A012 Paratyphoid fever B
A010 Typhoid fever with heart involvement

关于java - 排序时如何忽略第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38869828/

相关文章:

java - 如何在 Apache Camel 中使用 Oauth header 调用 REST API?

java - Hashmap with Streams in Java 8 Streams 收集 Map 的值

java - 如何获取继承结构中的类名

java - 如何在应用程序更新中实现 "IMMEDIATE"?

arrays - Perl 按散列数组或散列散列中的散列值排序

java - 在javafx中运行后台任务

Android Studio 不渲染布局

使用 EXCEPTION_ACCESS_VIOLATION_READ 在 Intel 芯片组上启动时 Android AVD 崩溃

scala 参数化合并排序 - 令人困惑的错误消息

java - 使用比较器进行快速排序