java为我们提供了一个集合的工具类,方便我们对集合进行操作,里面的方法都是静态方法。

Collections.sort()方法,参数:List<T>集合对象,这个对象带着泛型,是为了保证集合中的元素具备可比较性,因此这个返回值的泛型就会特殊点, <T extends Comparable <? super T>>

默认排序字符串,是按照字母的排列顺序

如果是中文,默认是按照ascii编码进行排序的

自定义一个比较器,实现按照字符串的长度进行排序

定义一个类StrComparator实现Comparator类

实现方法compare(),参数:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; public class CollectionsDemo { /**
* @param args
*/
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("ccc");
list.add("bbb");
list.add("eee");
System.out.println(list);//输出 [aaa, ccc, bbb, eee]
Collections.sort(list);
System.out.println(list);//输出 [aaa, bbb, ccc, eee] List<String> list2=new ArrayList<String>();
list2.add("陶");
list2.add("士");
list2.add("涵");
System.out.println(list2);//输出 [陶, 士, 涵]
Collections.sort(list2);
System.out.println(list2);//输出 [士, 涵, 陶] List<String> list3=new ArrayList<String>();
list3.add("aaa");
list3.add("c");
list3.add("bb");
list3.add("eeee");
System.out.println(list3);//输出 [aaa, c, bb, eeee]
Collections.sort(list3,new StrComparator());
System.out.println(list3);//输出 [c, bb, aaa, eeee] } }
/**
* 自定义比较器
* @author taoshihan
*
*/
class StrComparator implements Comparator<String>{ @Override
public int compare(String o1, String o2) {
if(o1.length()>o2.length()){
return 1;
}else if(o1.length()<o2.length()){
return -1;
}
return o1.compareTo(o2);
} }

PHP版:

<?php
$list=array("aaa","ccc","bbb","eee");
sort($list);
print_r($list);//输出 Array ( [0] => aaa [1] => bbb [2] => ccc [3] => eee ) $list2=array("陶","士","涵");
sort($list2);
print_r($list2);//输出 Array ( [0] => 士 [1] => 涵 [2] => 陶 ) $list3=array("aaa","c","bb","eeee");
usort($list3,"StrComparator");
print_r($list3);//输出 Array ( [0] => c [1] => bb [2] => aaa [3] => eeee ) //自定义的比较函数
function StrComparator($a,$b){
if(strlen($a)>strlen($b)){
return 1;
}elseif(strlen($a)<strlen($b)){
return -1;
}
return 0;
}

[javaSE] 集合工具类(Collections-sort)的更多相关文章

  1. Java:集合工具类-Collections

    Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...

  2. Java常用类(五)之集合工具类Collections

    前言 Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序.查询和修改等操作, 还提供了将集合对象置为不可变.对集合对象实现同步控 ...

  3. Java从零开始学二十四(集合工具类Collections)

    一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...

  4. java之集合工具类Collections

    Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...

  5. 吴裕雄--天生自然java开发常用类库学习笔记:集合工具类Collections

    import java.util.Collections ; import java.util.List ; import java.util.Set ; public class Collectio ...

  6. Java笔记(二十四)……集合工具类Collections&Arrays

    Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...

  7. java的集合工具类Collections

    集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口,它里面 ...

  8. [黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)

    ---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. 集合框架按其所实现的接口, 大 ...

  9. Java 集合工具类---------- Collections类

随机推荐

  1. mysql--MySQL数据库的简单认识

    一.MySQL介绍 1.mysql版本 双授权版本:社区版(完全免费,功能也够nb了)和商业版(更好,功能更多更强大一些,但是收费,VIP,有售后服务,也会参考和吸收社区版的一些nb的功能,安全性和稳 ...

  2. [Swift]遍历字符串

    Swift中无法再使用传统形式的for循环. //传统for循环形式不适用于Swift for(单次表达式;条件表达式;末尾循环体){中间循环体:} 字符串遍历方法1:使用该indices属性可以访问 ...

  3. CentOS6.5下samba服务

    为减少错误已提前关掉了SELinux,防火墙. 安装rpm包: samba-3.6.9-164.el6.x86_64.rpm 启动检测:samba服务可以正常启动!(证明RPM安装正常) 配置文件位置 ...

  4. SAE实践——创建新应用开启MySQL服务

    1. 创建SAE应用 当创建完成SAE账户之后,即可创建SAE应用.点击创建新应用按钮,创建一个新的SAE 应用 阅读提示信息,等待五秒,点继续创建. 填写应用信息完成创建.可选择PHP5.3和空应用 ...

  5. (C/C++) FILE 讀寫檔案操作

    在C/C++ 讀寫檔案操作比較常見應該是利用 FILE.ifstream.ofstream 在這篇筆記裡頭記錄 FILE.fstream 使用方法及操作 #include <iostream&g ...

  6. 2. C++11 构造函数相关

    1. 继承构造函数 派生类如果要使用基类的成员函数,可以通过using声明来完成. #include <iostream> using namespace std; class Base ...

  7. Carte上面的作业1、2天就会丢失的问题

    发现Carte上面的作业莫名其妙就会没有,问了客户的维护人员说也没删除. 对象时间也是No Limit,但还是隔1.2天就不见了. 那说明之前配置这里还是无效 <slave_config> ...

  8. 2018-2019 20165226 Exp7 网络欺诈防范

    2018-2019 20165226 Exp7 网络欺诈防范 目录 一.实验内容说明及基础问题回答 二.实验过程 1.简单应用SET工具建立冒名网站 2.ettercap DNS spoof 3.结合 ...

  9. 禅道与bugfree区别

    bugfree更偏重bug管理, 禅道是以项目管理为目标, 所以出发点不一样. 我们bug追踪管理使用bugfree,项目管理计划使用禅道,配置管理使用svn bugfree很low,安装需要环境特别 ...

  10. PXE+Kickstart 批量安装CentOS 7

    安装之前 将需要安装 CentOS 的服务器与 PXE 服务器通过网络设备连接:PXE 服务器安装 CentOS,并且关闭firewalld.selinux,设置静态IP地址,本例设为10.0.0.1 ...