Java字符串排序的几种实现方式
更新时间:2023年07月21日 10:17:56 作者:是小浩呀~
这篇文章主要给大家介绍了关于Java字符串排序的几种实现方式, 使用Java平台进行字符串排序被认为是一件简单的工作,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
创建实体类(此处引入了lombok)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Test{
private int Id;
private String TestNo;
}一、使用List集合中自带的sort方法(字符串的位数保持一致,不一致的情况可以在左边补0,也可以使用String.format()方法补全)
1、在对象排序中使用
public static void main(String[] args) {
List<Test> testList= new ArrayList<>();
testList.add(1,"22");
testList.add(2,"11");
testList.add(3,"44");
testList.add(4,"33");
list.sort((a,b)->a.getTestNo().compareTo(b.getTestNo()));
}2、在字符串排序中使用
public static void main(String[] args) {
List<String> testList= new ArrayList<>();
testList.add("22");
testList.add("11");
testList.add("44");
testList.add("33");
list.sort(String::compareTo);
}二、使用Stream流(字符串的位数保持一致,不一致的情况可以在左边补0,也可以使用String.format()方法补全)
1、在对象排序中使用
public static void main(String[] args) {
List<Test> testList= new ArrayList<>();
testList.add(1,"22");
testList.add(2,"11");
testList.add(3,"44");
testList.add(4,"33");
List<Test> sortList = testList.stream().sorted(Comparator.comparing(Test::getTestNo).collect(Collectors.toList());
}2、在字符串排序中使用
public static void main(String[] args) {
List<String> testList= new ArrayList<>();
testList.add("22");
testList.add("11");
testList.add("44");
testList.add("33");
List<String> collect = testList.stream().sorted(Comparator.comparing(Objects::toString)).collect(Collectors.toList());
}三、使用基数排序(此处仅展示对字符串进行排序,不需要补全位数)
class Quick3string{
//三向字符串快速排序
private static int charAt(String s, int d) {
if(d < s.length()) {
return s.charAt(d);
}
return -1;
}
public static void sort(String[] a) {
sort(a, 0, a.length - 1, 0);
}
private static void sort(String[] a, int lo, int hi, int d) {
if(hi <= lo) {
return;
}
int lt = lo, gt = hi, i = lo + 1;
int v = charAt(a[lo], d);
while(i <= gt) {
int t = charAt(a[i], d);
if(t < v) {
exch(a, lt++, i++);
}else if(t > v) {
exch(a, i, gt--);
}else {
i++;
}
}
//a[lo..lt-1] < v = a[lt..gt] < a[gt+1..hi]
sort(a, lo, lt - 1, d);
if(v >= 0) {
sort(a, lt, gt, d + 1);
}
sort(a, gt + 1, hi, d);
}
private static void exch(String[] a, int i, int j) {
String t = new String(a[i]);
a[i] = a[j];
a[j] = t;
}
public static void main(String[] args) {
String[] a = {"48328458C70490693231303331361020", "48326E48E1136A9E3139313131301020", "48326E48E1176F8A3139313131311020", "48326E48E12474713139313131311020"};
Quick3string.sort(a);
System.out.println(Arrays.toString(a));
}
}总结
到此这篇关于Java字符串排序的几种实现方式的文章就介绍到这了,更多相关Java字符串排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springboot整合minio实现文件上传与下载且支持链接永久访问
本文主要介绍了springboot整合minio实现文件上传与下载且支持链接永久访问,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-01-01
Spring Cloud Eureka 服务上下线监控的实现
这篇文章主要介绍了Spring Cloud Eureka 服务上下线监控的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-09-09
IDEA 2020.3最新永久激活码(免费激活到 2099 年,亲测有效)
分享一下 IntelliJ IDEA 2020.3.1 最新激活注册码,破解教程如下,可免费激活至 2099 年,亲测有效,本文给大家分享两种方法,感兴趣的朋友参考下吧2021-01-01
Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤
这篇文章主要介绍了Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07


最新评论