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;
} }

最新文章

  1. .NET加密方法
  2. 【2016-10-11】【坚持学习】【Day2】【代理模式】
  3. CF722D. Generating Sets[贪心 STL]
  4. cookie与session的爱恨情仇
  5. js 页码分页的前端写法
  6. Hbase的安装(hadoop-2.6.0,hbase1.0)
  7. 【qt4.8.6】qt-everywhere-opensource-src-4.8.6静态库编译,搭建vs2010 + Qt4.8.6环境
  8. [置顶] 很荣幸被选为2013年度 CSDN博客之星评选,如果觉得我的文章可以,请投我一票!
  9. 解锁Dagger2使用姿势(二) 之带你理解@Scope
  10. VerilogHDL常用的仿真知识
  11. ArcGIS API for JavaScript 与 npm 之例子运行
  12. redis优化
  13. jmeter笔记(3)--响应结果中文乱码的解决方式
  14. UOJ#407. 【IOI2018】狼人 Kruskal,kruskal重构树,主席树
  15. oracle 锁表sql 解锁
  16. SQL IN 操作符
  17. django——inclusion_tag
  18. MyEclipse下创建的项目 导入eclipse
  19. shell之“&gt;/dev/null 2&gt;&amp;1”
  20. Linux服务器使用XShell上传下载文件

热门文章

  1. checkbox和radio的样式美化问题
  2. android的二进制和十六进制的相互转换工具类(一):
  3. 解决windows下Eclipse连接远程Hadoop报错
  4. C# datetimePicker控件格式设置
  5. OpenCV学习(2)--基本数据结构
  6. JavaWeb核心编程之(三.3)Servlet Init 配置
  7. SharedPreferences最佳实践
  8. mysql数据类型整理
  9. 获取IP地址(简单实现)
  10. 字符编码和python使用encode,decode转换utf-8, gbk, gb2312