我是靠谱客的博主 传统黑猫,最近开发中收集的这篇文章主要介绍Collections.sort()排序原理之字符串,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package review;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class PersonTest {
/**
* 基本数据类型Comparable或者Comparator, 使用Collections.sort()进行排序的原理
*
* @param args
*/
public static void main(String[] args) {
// 存字符串
List<String> list1 = new ArrayList<>();
list1.add("ba");
list1.add("ca");
list1.add("aa");
System.out.println("原来的顺序
:" + list1);
mySort1(list1);
System.out.println("字母从高到低排序:" + list1);
mySort2(list1, new MyComparator());
System.out.println("字母从低到高排序:" + list1);
}
// 声明类型T,List的类型是T,T实现了Comparable接口,而且接口操作的对象可以是T类型或者是T的父类类型。
// 注意:Comparable对应c.compareTo()方法
private static <T extends Comparable<? super T>> void mySort1(List<T> list1) {
for (int i = 0; i < list1.size() - 1; i++) {
for (int j = i + 1; j < list1.size(); j++) {
if (list1.get(i).compareTo(list1.get(j)) < 0) {
Collections.swap(list1, i, j);
}
}
}
}
// 声明类型T,List的类型是T,Comparator是接口类型,接受传过来的子类对象,接口操作的类型是T及其父类类型
// 注意:Comparator对应cp.compare(a,b)方法
private static <T> void mySort2(List<T> list1, Comparator<? super T> cp) {
for (int i = 0; i < list1.size() - 1; i++) {
for (int j = i + 1; j < list1.size(); j++) {
if (cp.compare(list1.get(i), list1.get(j)) > 0) {
Collections.swap(list1, i, j);
}
}
}
}
}
// Comparator的子类,操作的类型应该是父类(具体类型),可以接受子类类型
// 覆盖接口Comparator中的compare方法
class MyComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
}

最后

以上就是传统黑猫为你收集整理的Collections.sort()排序原理之字符串的全部内容,希望文章能够帮你解决Collections.sort()排序原理之字符串所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部