黑马程序员技术交流社区

标题: Arrays.sort, Comparator<T>与策略模式 [打印本页]

作者: Synaric    时间: 2015-9-27 10:07
标题: Arrays.sort, Comparator<T>与策略模式
非常简单的例子,但是特别常用,可以引申出很多东西
  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. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2