zoukankan      html  css  js  c++  java
  • 容器排序——策略模式

     

    设计模式 ( 十八 ) 策略模式Strategy(对象行为型)(转载)

    将比较的方法封装到单独的一个类中,做到实体类和方法类分离。方法类实现Comparator接口。

    在上一片博客中,是用冒泡排序法进行排序,在实际的应用中,我们直接调用Collections类中的sort方法即可,具体请看jdk帮助文档。

     1 package hl7_11;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collections;
     5 import java.util.Comparator;
     6 import java.util.List;
     7 import java.util.Set;
     8 import java.util.TreeSet;
     9 
    10 public class SetSort {
    11     public static void main(String args[]){
    12         List<Student0> list = new ArrayList();
    13         list.add(new Student0(1,"z"));
    14         list.add(new Student0(3,"y"));
    15         list.add(new Student0(4,"c"));
    16         list.add(new Student0(2,"x"));
    17         Collections.sort(list, new Com());
    18         for(Student0 s : list)
    19             System.out.println(s);
    20     }
    21 }
    22 
    23 class Student0 {
    24     int id;
    25     String name;
    26     public Student0(){}
    27     public Student0(int id, String name) {
    28         this.id = id;
    29         this.name = name;
    30     }
    31     
    32     public int getId() {
    33         return id;
    34     }
    35     public void setId(int id) {
    36         this.id = id;
    37     }
    38     public String getName() {
    39         return name;
    40     }
    41     public void setName(String name) {
    42         this.name = name;
    43     }
    44     @Override
    45     public String toString() {
    46         return "Student0 [id=" + id + ", name=" + name + "]";
    47     }
    48     
    49 }
    50 class Com implements Comparator<Student0>{
    51     @Override
    52     public int compare(Student0 o1, Student0 o2) {
    53         return (o1.getId() > o2.getId()) ? 1 : (o1.getId() == o2.getId() ? 0 : -1);
    54     }
    55 }
  • 相关阅读:
    ASP.NET伪静态配置
    拖动条控件 (UISlider)
    进度环控件 (UIActivityIndicatorView)
    进度条控件 (UIProgressView)
    图像控件 (UIImageView)
    分段控件 (UISegmentedControl)
    CocoaPods安装和使用教程
    iOS 在UILabel显示不同的字体和颜色
    iOS开源项目(新)
    iOS开源项目(旧)
  • 原文地址:https://www.cnblogs.com/cxy2016/p/7152446.html
Copyright © 2011-2022 走看看