List-sort排序

转载 2015年07月10日 18:07:22
/**
* @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;
    }
}

打印的结果为:
&nbsp;[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]

相关文章推荐

C# List.sort排序详解(多权重,升序降序)

很多人可能喜欢Linq的orderBy排序,可惜U3D里面linq在Ios上会报错,所以就必须使用list的排序。 其实理解了并不难       升序降序比较 ...

STL源码——list sort:归并排序的非递归实现

由于STL中提供的sort算法是用在RandomAccessIterator上的,而list迭代器不具备随机访问的特性,所以对list进行排序不能使用algorithm中的sort算法,而应该使用li...
  • ww32zz
  • ww32zz
  • 2015年12月13日 13:45
  • 458

java Collections.sort()实现List排序的默认方法和自定义方法

1.java提供的默认list排序方法 例子程序如下: package outputMml2; import java.text.Collator; import java.util.Arr...

Collections.sort方法对list排序

用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public c...

Leetcode刷题记——147. Insertion Sort List(插入排序链表)

一、题目叙述: Sort a linked list using insertion sort. 二、解题思路: Medium题,啊。。。我今天头晕脑胀,写的不太...

Collections.sort方法对list的两种排序方式

Collections.sort方法对list的两种排序方式 Collections.sort( )分为两种,一种方式是排序规则,另一种方式是排序算法 。 其中规则是用来判断对象而算法...

Collections.sort对list进行排序

Collections.sort对list进行排序两种方式: 方式一: package com.zr.test1; import java.util.ArrayList; import java...

C# List排序Sort

List类可以使用Sort()方法对元素排序。 Sort()方法定义了几个重载方法,分别是   public void List.Sort(),不带有任何参数的Sort方法   public v...

C# 中 List.Sort运用(IComparer<T>)排序用法

在项目中由于要解析一个箱单号,要求从小到大的顺序。由于循环从数据库取出来取得值不是按照从小到大排序的因此需要自己转换下。 本篇文章用到了 ListTSort 方法 (IComparerT)方法重载 ...

java List 排序 Collections.sort

用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: 代码:java代码/** * 根据order对User排序 */ publ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List-sort排序
举报原因:
原因补充:

(最多只允许输入30个字)