使用TreeMap集合实现以学生为对象把学生的学号按大到小的排序

2021-10-09 16:54:28 浏览数 (1)

大家好,我是Java进阶者。

一、LinkedHashMap类

1.LinkedHashMap类是HashMap的子类,LinkedHashMap可以使用双向链表来维护内部元素的关系,保证了元素迭代的顺序,这个迭代的顺序可以是插入或访问顺序。HashMap是无序的,LinkedHashMap是有序的。

2.LinkedHashMap的用法例子:

代码语言:javascript复制
import java.util.*;
public class m02 {
public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map m=new HashMap();
        m.put("1", "Java程序设计");
        m.put("2", "软件测试");
        m.put("3", "数据库原理及其应用");
        Set ks=m.keySet();
        Iterator i=ks.iterator();
        while(i.hasNext()){
            String key=(String)i.next();
            String value=(String) m.get(key);
            System.out.println(key "--" value);
        }
}
}

运行的结果是:

二、如何Map存储的所有值的Collection集合?

1.获取Map存储的所有值的Collection集合的值是调用Map的values()方法,然后迭代集合每一个值。

2.实现的例子:

代码语言:javascript复制
import java.util.*;
public class m01 {
public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map m=new HashMap();
        //存储键和值
        m.put("c1", "Java程序设计");
        m.put("c2", "软件测试");
        m.put("c3", "数据库原理及其应用");
        Collection v=m.values();
        Iterator i=v.iterator();
        while(i.hasNext()){
            String value=(String)i.next();
            System.out.println(value);
        }
}
}

运行的结果是:

三、TreeMap集合

1.TreeMap是Map接口的其中之一实现类。TreeMap也是用来存储键和值的,也不可以出现重复的键。TreeMap它是按键(key)的自然顺序排列的。

2.TreeMap的用法例子:

代码语言:javascript复制
import java.util.*;
public class m02 {
public static void main(String[] args) {
        // TODO Auto-generated method stub
        TreeMap m=new TreeMap();
        m.put("4", "Java程序设计");
        m.put("6", "软件测试");
        m.put("2", "数据库原理及其应用");
        Set ks=m.keySet();
        Iterator i=ks.iterator();
        while(i.hasNext()){
            String key=(String)i.next();
            String value=(String) m.get(key);
            System.out.println(key "--" value);
        }
}
}

运行的结果是:

四、使用TreeMap集合实现以学生为对象把学生的学号按大到小的排序

1.在使用TreeMap集合通过自定义的比较器方法对所有键进行排序。

2.例子的实现:

代码语言:javascript复制
import java.util.*;
public class m02 {
public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建TreeMap集合
        TreeMap m=new TreeMap(new My());
        m.put("4", "张三");
        m.put("6", "李四");
        m.put("2", "王五");
        Set ks=m.keySet();
        Iterator i=ks.iterator();
        while(i.hasNext()){
            String key=(String)i.next();
            String value=(String) m.get(key);
            System.out.println(key "--" value);
        }
}
}
//定义类来自定义比较器
class My implements Comparator{
//实现比较方法
public int compare(Object obj1,Object obj2){
        String id1=(String) obj1;
        String id2=(String) obj2;
        return id2.compareTo(id1);
}
}

运行的结果是:

五、总结

本文主要介绍了LinkedHashMap类、Map如何存储所有值的Collection集合、TreeMap集合、使用TreeMap集合实现以学生为对象把学生的学号按大到小的排序。

LinkedHashMap可以使用双向链表来维护内部元素的关系,保证了元素迭代的顺序,这个迭代的顺序可以是插入或访问顺序。

获取Map存储的所有值的Collection集合的值是调用Map的values()方法。

使用TreeMap集合实现以学生为对象把学生的学号按大到小的排序是通过自定义一个比较器的方法,然后实现比较方法。希望大家通过本文的学习,对你有帮助!

------------------- End -------------------

0 人点赞