A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

非常简单的例子,但是特别常用,可以引申出很多东西
  1. import java.util.Arrays;
  2. import java.util.Comparator;

  3. class Cat{
  4.         Cat(int weight, int size){
  5.                 this.weight = weight;
  6.                 this.size = size;
  7.         }
  8.        
  9.         @Override
  10.         public String toString() {
  11.                 StringBuffer sBuffer = new StringBuffer();
  12.                 sBuffer.append("Cat[size:");
  13.                 sBuffer.append(size);
  14.                 sBuffer.append(",weight:");
  15.                 sBuffer.append(weight);
  16.                 sBuffer.append("] ");
  17.                 return sBuffer.toString();
  18.         }
  19.        
  20.         int weight;
  21.         int size;
  22. }

  23. class CatSizeComparactor implements Comparator<Cat>{
  24.         @Override
  25.         public int compare(Cat c1, Cat c2) {
  26.                 return c1.size - c2.size;
  27.         }
  28. }

  29. class CatWeightComparactor implements Comparator<Cat>{
  30.         @Override
  31.         public int compare(Cat c1, Cat c2) {
  32.                 return c1.weight - c2.weight;
  33.         }
  34. }

  35. public class ArraySortDemo {
  36.         public static void main(String[] args) {
  37.                 Cat[] cats = {
  38.                         new Cat(50, 20),
  39.                         new Cat(27, 25),
  40.                         new Cat(61, 33),
  41.                         new Cat(55, 26),
  42.                         new Cat(24, 19),
  43.                 };
  44.                
  45.                 System.out.println(Arrays.asList(cats));
  46.                 Arrays.sort(cats, new CatSizeComparactor());
  47.                 System.out.println(Arrays.asList(cats));
  48.                 Arrays.sort(cats, new CatWeightComparactor());       
  49.                 System.out.println(Arrays.asList(cats));
  50.         }
  51. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马