Java中基于字符串特定规则的List排序实现

在Java中,如果你想要根据字符串的特定规则对List进行排序,你可以使用Collections.sort()方法配合自定义的Comparator来实现。Comparator是一个函数式接口,允许你定义排序的规则。

图片[1]_Java中基于字符串特定规则的List排序实现_知途无界

下面是一个示例,展示如何根据字符串的特定规则(比如长度、字典顺序或者自定义的复杂规则)来对一个包含字符串的List进行排序。

示例 1: 按字符串长度排序

import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  
  
public class ListSortExample {  
    public static void main(String[] args) {  
        List<String> list = new ArrayList<>();  
        list.add("banana");  
        list.add("apple");  
        list.add("pear");  
        list.add("cherry");  
  
        // 使用Collections.sort()和Comparator按字符串长度排序  
        Collections.sort(list, new Comparator<String>() {  
            @Override  
            public int compare(String s1, String s2) {  
                return Integer.compare(s1.length(), s2.length());  
            }  
        });  
  
        // 使用Lambda表达式简化Comparator(Java 8及以上)  
        // Collections.sort(list, (s1, s2) -> Integer.compare(s1.length(), s2.length()));  
  
        System.out.println(list);  
    }  
}

示例 2: 按字典顺序排序(已经是默认行为,但可以作为示例)

虽然字典顺序排序是Collections.sort()的默认行为,但这里仍然展示如何使用Comparator来显式实现它。

import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  
  
public class ListSortExample {  
    public static void main(String[] args) {  
        List<String> list = new ArrayList<>();  
        list.add("banana");  
        list.add("apple");  
        list.add("pear");  
        list.add("cherry");  
  
        // 按字典顺序排序(虽然这是默认行为,但这里展示如何使用Comparator)  
        Collections.sort(list, String::compareTo);  
  
        // 或者更简单地,直接使用Collections.sort(list);  
  
        System.out.println(list);  
    }  
}

示例 3: 根据自定义规则排序

假设我们想要根据字符串中第一个字符的ASCII值进行排序,如果第一个字符相同,则按长度排序。

import java.util.ArrayList;  
import java.util.Collections;  
import java.util.Comparator;  
import java.util.List;  
  
public class ListSortExample {  
    public static void main(String[] args) {  
        List<String> list = new ArrayList<>();  
        list.add("banana");  
        list.add("apple");  
        list.add("pear");  
        list.add("cherry");  
  
        // 自定义排序规则  
        Collections.sort(list, new Comparator<String>() {  
            @Override  
            public int compare(String s1, String s2) {  
                int firstCharCompare = Character.compare(s1.charAt(0), s2.charAt(0));  
                if (firstCharCompare != 0) {  
                    return firstCharCompare;  
                } else {  
                    return Integer.compare(s1.length(), s2.length());  
                }  
            }  
        });  
  
        // 使用Lambda表达式简化  
        // Collections.sort(list, (s1, s2) -> {  
        //     int firstCharCompare = Character.compare(s1.charAt(0), s2.charAt(0));  
        //     return firstCharCompare != 0 ? firstCharCompare : Integer.compare(s1.length(), s2.length());  
        // });  
  
        System.out.println(list);  
    }  
}

以上示例展示了如何在Java中根据字符串的特定规则对List进行排序。你可以根据需要调整Comparator中的比较逻辑来实现不同的排序规则。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞12 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容