Collections之sort的两个方法(自然排序和自定义比较器排序)
2024-10-21 10:17:51
Collections是个服务于Collection的工具类(静态的),它里面定义了一些集合可以用到的方法。
本文演示了Collections类里sort()的两个方法。第一种只需传入被排序的集合,便会为它自然排序。但有时我们需要自定义排序的方式,这是我们就得定义一个比较器,里面定义我们要排序的方式,调用sort()时,把被排序的集合和比较器同时传入,就可以按照自定义的方式排序了。
package Test602; import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator; /**
* 对字符串进行自然排序和长度排序
*/
public class CollectionsDemo { public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("fa");
al.add("gaa");
al.add("xa");
al.add("vacvh");
al.add("wetq");
al.add("hja");
al.add("jewik");
getAl(al);
System.out.println(ziRanSort(al));
System.out.println(strLenSort(al)); }
//按原序列取出ArrayList的元素
public static void getAl(ArrayList<String> al)
{
Iterator<String> it = al.iterator();
//String result = null;
while(it.hasNext())
{
String result = it.next();
System.out.println(result);
} }
//进行自然排序
public static ArrayList<String> ziRanSort(ArrayList<String> al)
{
Collections.sort(al);
return al; }
//按照字符串长度进行排序
public static ArrayList<String> strLenSort(ArrayList<String> al)
{
StrLenComparator comp = new StrLenComparator();
Collections.sort(al, comp);
return al; }
}
新建一个类,里面自定义一个比较器(按照字符串的长度进行比较)
package Test602; import java.util.Comparator; public class StrLenComparator implements Comparator<String>{ public int compare(String str1, String str2) {
// TODO Auto-generated method stub
if(str1.length()>str2.length())
{
return 1;
}
if(str1.length()<str2.length())
{
return -1;
} return 0;
} }
最新文章
- .NET加密方法
- 【2016-10-11】【坚持学习】【Day2】【代理模式】
- CF722D. Generating Sets[贪心 STL]
- cookie与session的爱恨情仇
- js 页码分页的前端写法
- Hbase的安装(hadoop-2.6.0,hbase1.0)
- 【qt4.8.6】qt-everywhere-opensource-src-4.8.6静态库编译,搭建vs2010 + Qt4.8.6环境
- [置顶] 很荣幸被选为2013年度 CSDN博客之星评选,如果觉得我的文章可以,请投我一票!
- 解锁Dagger2使用姿势(二) 之带你理解@Scope
- VerilogHDL常用的仿真知识
- ArcGIS API for JavaScript 与 npm 之例子运行
- redis优化
- jmeter笔记(3)--响应结果中文乱码的解决方式
- UOJ#407. 【IOI2018】狼人 Kruskal,kruskal重构树,主席树
- oracle 锁表sql 解锁
- SQL IN 操作符
- django——inclusion_tag
- MyEclipse下创建的项目 导入eclipse
- shell之“>;/dev/null 2>;&;1”
- Linux服务器使用XShell上传下载文件
热门文章
- checkbox和radio的样式美化问题
- android的二进制和十六进制的相互转换工具类(一):
- 解决windows下Eclipse连接远程Hadoop报错
- C# datetimePicker控件格式设置
- OpenCV学习(2)--基本数据结构
- JavaWeb核心编程之(三.3)Servlet Init 配置
- SharedPreferences最佳实践
- mysql数据类型整理
- 获取IP地址(简单实现)
- 字符编码和python使用encode,decode转换utf-8, gbk, gb2312