Collections.sort的两种用法 转
- /**
- * @author guwh
- * @version 创建时间:2011-11-3 上午10:49:36
- * 类说明
- */
- package com.jabberchina.test;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class SortTest {
- public static void main(String[] args) {
- List<String> lists = new ArrayList<String>();
- List<A> list = new ArrayList<A>();
- List<B> listB = new ArrayList<B>();
- lists.add("5");
- lists.add("2");
- lists.add("9");
- //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序
- Collections.sort(lists);
- A aa = new A();
- aa.setName("aa");
- aa.setOrder(1);
- A bb = new A();
- bb.setName("bb");
- bb.setOrder(2);
- list.add(bb);
- list.add(aa);
- //list中的对象A实现Comparable接口
- Collections.sort(list);
- B ab = new B();
- ab.setName("ab");
- ab.setOrder("1");
- B ba = new B();
- ba.setName("ba");
- ba.setOrder("2");
- listB.add(ba);
- listB.add(ab);
- //根据Collections.sort重载方法来实现
- Collections.sort(listB,new Comparator<B>(){
- @Override
- public int compare(B b1, B b2) {
- return b1.getOrder().compareTo(b2.getOrder());
- }
- });
- System.out.println(lists);
- System.out.println(list);
- System.out.println(listB);
- }
- }
- class A implements Comparable<A>{
- private String name;
- private Integer order;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getOrder() {
- return order;
- }
- public void setOrder(Integer order) {
- this.order = order;
- }
- @Override
- public String toString() {
- return "name is "+name+" order is "+order;
- }
- @Override
- public int compareTo(A a) {
- return this.order.compareTo(a.getOrder());
- }
- }
- class B{
- private String name;
- private String order;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getOrder() {
- return order;
- }
- public void setOrder(String order) {
- this.order = order;
- }
- @Override
- public String toString() {
- return "name is "+name+" order is "+order;
- }
- }
- 打印的结果为:
- [2, 5, 9]
- [name is aa order is 1, name is bb order is 2]
- [name is ab order is 1, name is ba order is 2]
Collections.sort的两种用法 转的更多相关文章
- Comparable和Comparator的区别&Collections.sort的两种用法
在Java集合的学习中,我们明白了: 看到tree,可以按顺序进行排列,就要想到两个接口.Comparable(集合中元素实现这个接口,元素自身具备可比性),Comparator(比较器,传入容器构造 ...
- java基础——Collections.sort的两种用法
Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? ...
- Collections.sort的两种用法
http://gwh-08.iteye.com/blog/1233401/ class Foo implements Comparable<Foo>{ @Override public i ...
- java基础 -- Collections.sort的两种用法
/** * @author * @version * 类说明 */ package com.jabberchina.test; import java.util.ArrayList; import j ...
- java基础—— Collections.sort的两种用法
package com.jabberchina.test; import java.util.ArrayList; import java.util.Collections; import java. ...
- Java中Collections类的排序sort函数两种用法
java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1. 自然排序(natural ordering). 函数原型:sort(List< ...
- Collections.sort的三种用法
/** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...
- c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast
C++中的operator主要有两个作用,一是操作符的重载,一是自定义对象类型的隐式转换.对于操作符的重载,许多人都不陌生,但是估计不少人都不太熟悉operator的第二种用法,即自定义对象类型的隐式 ...
- operator 的两种用法
C++,有时它的确是个耐玩的东东,就比如operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).1.操作符 ...
随机推荐
- SVG绘制圆形简单示例分享
今天分享“svg绘制圆形”部分 1.简单圆形 效果图如下: 关键代码: <svg xmlns="http://www.w3.org/2000/svg" version=&qu ...
- php类的属性
属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成.属性的变量可以设置初始化的默认值,默认值必须是常量. class Car { //定义 ...
- shell for循环+case的脚本(监控程序状态)
分享一个shell for循环+case的脚本(监控程序状态) 分享一个for循环+case的脚本(监控程序状态并执行相关操作) ,供大家学习参考. 复制代码代码如下: #/bin/bash set ...
- LeetCode【第217题】Contains Duplicate
题目: ''' Given an array of integers, find if the array contains any duplicates. Your function should ...
- Nginx+uWSGI+Django+Python在Linux上的部署
搞了一整天,终于以发现自己访问网络的端口是错误的结束了. 首先要安装Nginx,uWSGI,Django,Python,这些都可以再网上查到. 安装好后可以用 whereis 命令查看是否安装好了各种 ...
- CUDA获取显卡数据
一个简单的获取Nvidia显卡信息的程序 #include<iostream> int main() { cudaDeviceProp prop; int count; cudaGetDe ...
- POJ 2442 Sequence 优先队列
题目: http://poj.org/problem?id=2442 #include <stdio.h> #include <string.h> #include <q ...
- Entity Framework Code First 映射继承关系
转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code Fi ...
- 版本控制工具git入门
版本控制工具的历史 不说了,放张图 两者的区别:集中式需要一个中心服务器放置最新的文件,需要联网操作.分布式可以再不联网的情况下操作,前提要拥有版本库 git安装 略 github注册 略 如何在g ...
- python url解析
>>> url="http://localhost/test.py?a=hello&b=world " >>> result=urlpa ...