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

     

     

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/domi22/p/8047017.html
Copyright © 2011-2022 走看看