Collections之sort的两个方法(自然排序和自定义比较器排序)
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;
} }
Collections之sort的两个方法(自然排序和自定义比较器排序)的更多相关文章
- filter()和sort()这两个方法一块学习,案例中。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- java中sort方法的自定义比较器写法(转载)
java中sort方法的自定义比较器写法 摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collecti ...
- sort方法和自定义比较器的写法
摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法.对自定义对象排序 ...
- 用Java集合中的Collections.sort方法对list排序的两种方法
用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- Comparable和Comparator的区别&Collections.sort的两种用法
在Java集合的学习中,我们明白了: 看到tree,可以按顺序进行排列,就要想到两个接口.Comparable(集合中元素实现这个接口,元素自身具备可比性),Comparator(比较器,传入容器构造 ...
- Collections.sort的两种用法 转
/** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...
- Java中Collections类的排序sort函数两种用法
java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1. 自然排序(natural ordering). 函数原型:sort(List< ...
- java中的排序(自定义数据排序)--使用Collections的sort方法
排序:将一组数据按相应的规则 排列 顺序 1.规则: 基本数据类型:日常的大小排序. 引用类型: 内置引用类型(String,Integer..),内部已经指定规则,直接使用即可.---- ...
- java基础——Collections.sort的两种用法
Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? ...
随机推荐
- 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...
- CLR via C# 阅读笔记
1.char在C#中为16位Unicode字符:int 映射到System.Int32;long映射到System.Int64. 2.重载时C#不考虑返回值,而CLR允许返回值不同,方法名和参数相同的 ...
- wcf系列学习5天速成——第四天 wcf之分布式架构
今天是wcf系列的第四天,也该出手压轴戏了.嗯,现在的大型架构,都是神马的, nginx鸡群,iis鸡群,wcf鸡群,DB鸡群,由一个人作战变成了群殴....... 今天我就分享下wcf鸡群,高性能架 ...
- C# webservice开发
一.Webservice简介Web Service也叫XML Web Service. Web Service是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...
- session相关----高手请跳过!
session["username"]=null;//Session.Remove("username");的结果是session["username ...
- 《think in python》学习-6
think in python 有返回函数 我们使用过的内置函数中,有一部分会返回结果,比如 math的 返回值 我们写一个有返回值的函数,计算给定半径的圆的面积,例如这个: def area(rad ...
- git本地仓库与github远程仓库链接协议问题
前提条件:有github账号,本地安装了git,能上网. 环境:ubuntu14.0.4LTS 首先在你得在github上创建一个仓库new repository,然后再本地创建一个文件夹mkdir ...
- 怎样在超级终端和PC之间通过串口传输文件
Windows环境下,通过SecureCRT软件,用串口向ARM开发板发送文件: 输入命令 rz,可以看到如下图所示: 选择路径点击上传即可. 如果是想从Arm开发板中把文件Down下来,则可以按照下 ...
- 8. java.lang.ArithmeticException
java.lang.ArithmeticException 数学运算异常 当算术运算中出现了除以零这样的运算就会出这样的异常.
- Kill 正在执行的存储过程
1.找到正在执行的存储过程的 sid ,serial# select b.sid,b.SERIAL#,a.OBJECT, 'alter system kill session ' || ''' ...