zoukankan      html  css  js  c++  java
  • 集合框架—代码—用各种集合进行排序

    list集合的排序:(int , String)

    Collections.sort(list, new Comparator<Student>(){

     

    public int compare(Student s1,Student s2){

    //按String字母升序

    int i=s1.getName().compareTo(s2.getName());

    if(i==0){

    //按照数字升序

    return s2.getScore()-s1.getScore();

    }

    return i;

    }

    });

    List自定义标准排序

    public static void main(String[] args) {

    //自定义顺序

    Integer[] defined = {1,8,2,6};

    final List<Integer> definedOrder = Arrays.asList(defined);

    Integer[] toBeOrdered = {1,2,2,6,8,1,2,6,8,2,1,1,1,6,6,6,8};

    List<Integer> toBeOrderedList = Arrays.asList(toBeOrdered);

    Collections.sort(toBeOrderedList, new Comparator<Integer>()

    {

    public int compare(Integer o1, Integer o2)

    {

    return definedOrder.indexOf(o1) - definedOrder.indexOf(o2);

    }

    });

    System.out.println("自定义顺序:");

    for(Integer stu : definedOrder){

    System.out.print(stu.toString()+",");

    }

    System.out.println(" 按标准顺序排列:");

    for(Integer stu : toBeOrderedList){

    System.out.print(stu.toString()+",");

    }

    }

    map集合排序

    public static void main(String[] args) {

    //集合的定义

    Map<Integer,Object> map = new HashMap<Integer,Object>();

    map.put(111, "Q");

    map.put(2, "S");

    map.put(3, "f");

    map.put(4, "W");

    map.put(15, "fa");

    map.put(1, "DD");

    //将HashMap集合封装到TreeMap集合,实现升序排序

    Map<Integer,Object> treemap = new TreeMap<Integer,Object>();

    //将HashMap集合封装到TreeMap集合,实现逆序排序

    Map<Integer,Object> treemap = new TreeMap<Integer,Object>(Collections.reverseOrder());

    treemap .putall(map);

     

    Set set = treemap.keySet();

    Iterator it = set.iterator();

    while(it.hasNext()){

    Integer a = (Integer)it.next();

    System.out.println("key:"+a+" value:"+treemap.get(a));

    }

    }

     

    控制台输出:

     

    key:1 value:DD

    key:2 value:S

    key:3 value:f

    key:4 value:W

    key:15 value:fa

    key:111 value:Q

     

    String 和 Integer 都会自动升序

     

    set集合排序

    public static void main(String[] args) {

    //集合的定义

    Set<Integer> hashSet = new HashSet<Integer>();

    hashSet.add(11);

    hashSet.add(2);

    hashSet.add(3);

    hashSet.add(4);

    hashSet.add(235);

    hashSet.add(1);

    Set<Integer> treeSet = new TreeSet<Integer>(hashSet);

    for(Integer i:treeSet){

    System.out.println(i);

    }

    }

     

    控制台输出:

    1 2 3 4 11 235

     

    public static void main(String[] args) {

    Student student = new Student();

    //集合的定义

    List<Student> list = new ArrayList<Student>();

    Set<String> hashSet = new HashSet<String>();

    hashSet.add("A");

    hashSet.add("W");

    hashSet.add("E");

    hashSet.add("T");

    hashSet.add("F");

    hashSet.add("U");

    Set<String> treeSet = new TreeSet<String>();

    treeSet .addAll(hashSet);

    for(String i:treeSet){

    System.out.println(i);

    }

    }

     

    控制台输出:

    A E F T U W

     

     

  • 相关阅读:
    2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest C
    Codeforces Round #445 div.2 D. Restoration of string 乱搞
    hdu 6228 Tree
    数塔(入门级dp)
    逆序数(归并排序和树状数组)
    poj2104 K-th Number 主席树入门;
    Codeforces Round #466 (Div. 2)F. Machine Learning 离散化+带修改的莫队
    Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)C. Producing Snow+差分标记
    2038: [2009国家集训队]小Z的袜子(hose)+莫队入门
    Codeforces Round #220 (Div. 2)D. Inna and Sequence 树状数组+二分
  • 原文地址:https://www.cnblogs.com/domi22/p/8047017.html
Copyright © 2011-2022 走看看