使用Collections.sort(List<T>,Comparator<? super T>)给List<String>排序(一)
来源:互联网 发布:淘宝那家才是兔八哥 编辑:程序博客网 时间:2024/04/27 15:01
- 概要
- 环境
- 情景
- 需求
- 常规的排序方式
- 自定义的排序方式
- 总结
概要
本文章,讲解Collections.sort给List<String>
排序的一种情况:
List<String>
里的内容是整数
环境
- eclipse+JDK1.6
情景:
List<String>里的内容是整数
需求:
/**
* @date 2017-07-12
* @author LTF
* 把数组排成最小的数
* 题目描述
* 输入一个List集合,给集合里的数据排序,按照正序或倒序打印出集合里的所有数据。
* 例如输入集合[15,123,10,9,3]
* 正序打印 :3,9,10,15,123
* 倒序打印 :123,15,10,9,3
* 思路
* 通过Collection.sort()方法中的自定义比较器实现。若num1>num2,则说明num1满足要求。
*/
常规的排序方式:
public void printListStringSort(){ List<String> list = new ArrayList<String>(); list.add("15"); list.add("123"); list.add("10"); list.add("9"); list.add("3"); //常规的排序 Collections.sort(list); //打印出数据 for (String str : list) { System.out.println( str ); } }
输出:
101231539
总结:输出的结果不是我们想要的,默认排序的是按照首字符的大小排序
自定义的排序方式:
public void printListStringSort(){ List<String> list = new ArrayList<String>(); list.add("15"); list.add("123"); list.add("10"); list.add("9"); list.add("3"); System.out.println( "---------------升序排列----------------" ); // 升序排列 Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { int num1 = Integer.parseInt(o1); int num2 = Integer.parseInt(o2); if (num1 > num2) { return 1; } else if (num1 < num2) { return -1; } else { return 0; } } }); for (String str : list) { System.out.println(str); } System.out.println( "---------------降序排列----------------" ); // 降序排列 Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { int num1 = Integer.parseInt(o1); int num2 = Integer.parseInt(o2); if (num1 < num2) { return 1; } else if (num1 > num2) { return -1; } else { return 0; } } }); for (String str : list) { System.out.println(str); } }
输出:
---------------升序排列----------------391015123---------------降序排列----------------123151093
总结:输出的结果是我们想要
总结:
使用Collections.sort(List<T>,Comparator<T>)
,可以做到给特殊的需求排序。首先我们需要实现Comparator接口,重写public int compare(Object o1, Object o2) 方法。上述的案例里,T是String,我们在获取数据时,就能直接得到String数据。
已知List<String>
里的内容是整数的情况下,我们把数据转化为整数类型,然后用整数去比较,最后得出排序结果。
阅读全文
0 0
- 使用Collections.sort(List<T>,Comparator<? super T>)给List<String>排序(一)
- 使用Collections.sort(List<T>,Comparator<? super T>)给List<String>排序
- 使用Collections.sort(List<T>,Comparator<T>)给List<String>排序(一)
- 使用Collections.sort(List<T>,Comparator<T>)给List<String>排序(一)
- Collections.sort(List<T> list, Comparator<? super T> c) 源代码分析
- sort(List<T> list, Comparator<? super T> c) 根据比较器产生的顺序排序
- 剑指Offer——巧妙使用sort(List<T>,Comparator<? super T>)比较器
- android Collections.sort(List<T> list) 与JAVA Collections.sort(List<T> list)
- android Collections.sort(List<T> list) 与JAVA Collections.sort(List<T> list)
- 【Java】如何给List集合排序Collections.sort(list,new Comparator<Entity>)
- C# List<T>.Sort排序
- collections.sort(list, comparator) 详解
- 通过Collections.sort 给 List 排序
- list的排序Comparator的compare(T lhs, T rhs)
- Java.util.Collections.sort(List l) 排序 [implements Comparator]
- Java利用Comparator与Collections.sort对List排序
- Java利用Comparator与Collections.sort对List排序
- java利用Comparator与Collections.sort对List排序
- live555 计划任务(TaskScheduler)
- NYOJ104 最大和(dp+求最大子矩阵)
- 程序员的个人品牌
- 凝思安全操作系统产业化项目验收圆满成功
- Linux进阶学习上课笔记:第二章节用户和组
- 使用Collections.sort(List<T>,Comparator<? super T>)给List<String>排序(一)
- JAVA内存分析常用命令
- Spring Boot笔记
- eclipse maven构建项目时报错 -Dmaven.multiModuleProjectDirectory system propery is not set
- Could not load file or assembly or one of its dependencies. 试图加载格式不正确的程序。
- ubuntu16.04 python3.5下安装tensorflow(cpu only)
- SQL中的case when then else end用法
- 安装Perl5.20
- GET 对比 POST