——- android培训、java培训、期待与您交流! ———-
TreeMap自定义对象存取练习
需求:
每一个学生都有对应的归属地。
学生Student,地址String。
学生属性:姓名,年龄。
注意:姓名和年龄相同的视为同一个学生。
保证学生的唯一性。
对学生对象的年龄进行升序排序,用Comparable实现;
对学生的姓名进行字典序排序,用Comparator实现。
因为数据是以键值对形式存在的。
所以要使用可以排序的Map集合。TreeMap。
思路:
1 把学生属性存入学生对象,并抽象出学生类
2 创建TreeMap容器,并把学生对象存入
3 取出学生
4 创建比较器类并测试按姓名字典序排序
在写学生类要注意的地方:
1 实现Comparable接口,覆盖compareTo方法
2 去重,计算哈希值,覆盖hashCode和equals方法
3 覆盖toString方法
4 记得写全set ,get方法
源代码
import java.util.*;
//主类
public class TreeMapTest
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
//1 创建TreeMap映射对象
//TreeMap<Student,String> tm = new TreeMap<Student,String>(new StuNameComparator());//姓名字典序排序
TreeMap<Student,String> tm = new TreeMap<Student,String>();//年龄升序排序
//2 添加Student对象
tm.put(new Student("Jack",25),"北京");