利用Comparable进行排序

当使用集合(Collenctions)的时候 的时候,可以使用Comparable进行排序。这种方式在要排序方法比较复杂的时候使用,比如需要根据多个字段以及复杂的条件。

我们只需要将集合中的对象实现Comparable接口并覆盖compareTo方法即可。

下面是我刚写完的一个类及简单的使用掩饰,用的是List,其实用HashSet等也是可以的。

package com.hf.commonAMDQ.layout.impl;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

 

public class LayoutGroup implements Comparable {
    private int index=0;
        
    public LayoutGroup(int index) {
     this.index=index;
  
  
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  LayoutGroup a=new LayoutGroup(1);
  LayoutGroup b=new LayoutGroup(3);
  LayoutGroup c=new LayoutGroup(2);
  List<LayoutGroup> list=new ArrayList<LayoutGroup>();
  list.add(a);
  list.add(b);
  list.add(c);
  for(int i=0;i<list.size();i++){
    System.out.println(""+list.get(i).index);
   
  }
  Collections.sort(list);
  for(int i=0;i<list.size();i++){
   System.out.println(""+list.get(i).index);
  
     }
 }

 public int compareTo(Object o) {
  LayoutGroup other=(LayoutGroup)o;
  /*根据index来进行排序*/
  if(this.index>other.index){
   return 1;
  }
  if(this.index<other.index){
   return -1;
  }
  
  
  return 0;
 }
 public boolean equals(Object o){
  
  if(this==o){
   return true;
  }
  if(!(o instanceof LayoutGroup )){
   return false;
  }
  LayoutGroup other=(LayoutGroup)o;
  if(this.index>other.index){
   return true;
  }
  return false;
  
 }
 
 public int hashCode(){
  int result;
  result=index;
  return result*29;
  
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值