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的两个方法(自然排序和自定义比较器排序)的更多相关文章

  1. filter()和sort()这两个方法一块学习,案例中。

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. java中sort方法的自定义比较器写法(转载)

    java中sort方法的自定义比较器写法 摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collecti ...

  3. sort方法和自定义比较器的写法

    摘要 在做一些算法题时常常会需要对数组.自定义对象.集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法.对自定义对象排序 ...

  4. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  5. Comparable和Comparator的区别&Collections.sort的两种用法

    在Java集合的学习中,我们明白了: 看到tree,可以按顺序进行排列,就要想到两个接口.Comparable(集合中元素实现这个接口,元素自身具备可比性),Comparator(比较器,传入容器构造 ...

  6. Collections.sort的两种用法 转

    /** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...

  7. Java中Collections类的排序sort函数两种用法

    java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List< ...

  8. java中的排序(自定义数据排序)--使用Collections的sort方法

    排序:将一组数据按相应的规则 排列 顺序 1.规则:       基本数据类型:日常的大小排序. 引用类型: 内置引用类型(String,Integer..),内部已经指定规则,直接使用即可.---- ...

  9. java基础——Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? ...

随机推荐

  1. 安卓图片框架:universal-image-loader的高速使用

    在安卓开发过程中难免会遇到下面几个情况: 1.图片异步载入 2.图片缓存 3.图片显示 4.其他--(忘记了) 以上的这些情况,可能要自己去写不少代码去实现这些功能.并且对于一些新手,可能写了半天,发 ...

  2. 提交时提示错误This Bundle is invalid.New apps and app updates submitted to the App Store must be built wit

    this bundle is invalid . new apps and app updates submitted to the app store must be built with publ ...

  3. oracle实现今年数据 去年同期和增长百分比

    select c.*,round((datanow-databefore)/databefore,2)*100||'%' datapercent from (select a.auth_tztype ...

  4. javascript高级知识点——函数的长度

    代码信息来自于http://ejohn.org/apps/learn/. 函数的长度属性如何工作? function makeNinja(name){} function makeSamurai(na ...

  5. 通过url给action传中文参数乱码解决方案

    比如: http://localhost:8080/projectName/dutyCondition.action?admitstate=0&currentStep=我的博客 传到后台的时候 ...

  6. JavaScript、JSP、Java及javaEE

    对JavaScript.JSP.Java及javaEE之间区别的理解 JavaScript和Java名字极为类似,相信不少的初学者或者准备学这些知识的人对于JavaScript.JSP.Java及Ja ...

  7. C++中将int转变成string和string转变成int

    int to string #include<iostream> #include<string> using namespace std; int main() { stri ...

  8. 解决eclipse创建Maven项目后无法生成src/main/java资源文件夹的方法

    在项目上右键选择properties,然后点击java build path,在Librarys下,编辑JRE System Library,选择workspace default jre.

  9. 使用javascript把图片转成base64位编码,然后传送到服务端(ajax调用的接口基于drupa7)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. ParseChat应用源码ios版

    ParseChat是一个完全原生的iPhone应用程序,用于创建实时的.基于文本的Parse聊天室.功能:支持多台设备之间的实时聊天,可动态添加新的聊天室,支持基本配置,可发送和接收音效以及任意大小的 ...