Java基础知识强化之集合框架笔记60:Map集合之TreeMap(TreeMap<Student,String>)的案例

1. TreeMap(TreeMap<Student,String>)的案例

2. 案例代码:

(1)Student.java:

 1 package cn.itcast_04;
 2
 3 public class Student {
 4     private String name;
 5     private int age;
 6
 7     public Student() {
 8         super();
 9     }
10
11     public Student(String name, int age) {
12         super();
13         this.name = name;
14         this.age = age;
15     }
16
17     public String getName() {
18         return name;
19     }
20
21     public void setName(String name) {
22         this.name = name;
23     }
24
25     public int getAge() {
26         return age;
27     }
28
29     public void setAge(int age) {
30         this.age = age;
31     }
32 }

(2)测试类TreeMapDemo2,如下:

 1 package cn.itcast_04;
 2
 3 import java.util.Comparator;
 4 import java.util.Set;
 5 import java.util.TreeMap;
 6
 7 /*
 8  * TreeMap<Student,String>
 9  * 键:Student
10  * 值:String
11  */
12 public class TreeMapDemo2 {
13     public static void main(String[] args) {
14         // 创建集合对象
15         TreeMap<Student, String> tm = new TreeMap<Student, String>(
16                 new Comparator<Student>() {
17                     @Override
18                     public int compare(Student s1, Student s2) {
19                         // 主要条件
20                         int num = s1.getAge() - s2.getAge();
21                         // 次要条件
22                         int num2 = num == 0 ? s1.getName().compareTo(
23                                 s2.getName()) : num;
24                         return num2;
25                     }
26                 });
27
28         // 创建学生对象
29         Student s1 = new Student("潘安", 30);
30         Student s2 = new Student("柳下惠", 35);
31         Student s3 = new Student("唐伯虎", 33);
32         Student s4 = new Student("燕青", 32);
33         Student s5 = new Student("唐伯虎", 33);
34
35         // 存储元素
36         tm.put(s1, "宋朝");
37         tm.put(s2, "元朝");
38         tm.put(s3, "明朝");
39         tm.put(s4, "清朝");
40         tm.put(s5, "汉朝");
41
42         // 遍历
43         Set<Student> set = tm.keySet();
44         for (Student key : set) {
45             String value = tm.get(key);
46             System.out.println(key.getName() + "---" + key.getAge() + "---"
47                     + value);
48         }
49     }
50 }

运行效果,如下:

时间: 2024-10-10 03:06:10

Java基础知识强化之集合框架笔记60:Map集合之TreeMap(TreeMap<Student,String>)的案例的相关文章

Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例

1. 使用打印流改进复制文本文件的案例 2. 代码示例: 1 package cn.itcast_03; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 10 /* 11

Java基础知识强化之网络编程笔记07:TCP之服务器给客户端一个反馈案例

1. 首先我们搭建服务器端的代码,如下: 1 package cn.itcast_07; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.net.ServerSocket; 7 import java.net.Socket; 8 9 public class ServerDemo { 10 public static void ma

Java基础知识强化之IO流笔记45:IO流练习之 把文本文件中数据存储到集合中的案例

1.  把文本文件中数据存储到集合中      需求:从文本文件中读取数据(每一行为一个字符串数据)到集合中,并遍历集合. 分析:      通过题目的意思我们可以知道如下的一些内容,      数据源是一个文本文件.      目的地是一个集合.      而且元素是字符串.      数据源:   b.txt -- FileReader -- BufferedReader  目的地:  ArrayList<String> 2. 代码示例: 1 package cn.itcast_02; 2

Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. Properties是Hashtable的子类,说明是一个Map集合. 2. Properties作为Map集合使用 1 package cn.itcast_08; 2 3 import java.util.Properties; 4 import java.util.Set; 5 6 /* 7 *

Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)

使用HttpClient进行Get方式通信,通过HttpClient建立网络链接,使用HttpGet方法读取数据,并且通过Response获取Entity返回值. 使用HttpClient进行Post方式通信,通过HttpClient建立网络链接,使用HttpPost方法传出数据与读取数据,传出和传入的数据都是Entity的子类. 详见:Android(java)学习笔记211:采用httpclient提交数据(qq登录案例)

Java基础知识强化之IO流笔记69:Properties练习之 判断文件中是否有指定的键,如果有就修改值的案例

1. 我有一个文本文件(user.txt),我知道数据是键值对形式的,但是不知道内容是什么. 请写一个程序判断是否有"lisi"这样的键存在,如果有就改变其值为"100"  分析:  A:把文件中的数据加载到集合中  B:遍历集合,获取得到每一个键  C:判断键是否有为"lisi"的,如果有就修改其值为"100"  D:把集合中的数据重新存储到文件中 2. 代码实现: 1 package cn.itcast_08; 2 3 i

Java基础知识强化之IO流笔记62:三种方式实现键盘录入

1. 三种方式实现键盘录入     System.in 标准输入流.是从键盘获取数据的 键盘录入数据三种方式:  A:main方法的args接收参数.  java HelloWorld hello world java  B:Scanner(JDK5以后的)  Scanner sc = new Scanner(System.in);  String s = sc.nextLine();  int x = sc.nextInt()  C:通过字符缓冲流包装标准输入流实现  BufferedRead

Java基础知识强化之IO流笔记45:IO流练习之 把集合中的数据存储到文本文件案例

1. 把集合中的数据存储到文本文件案例:    需求:把ArrayList集合中的字符串数据存储到文本文件 ? (1)分析:通过题目的意思我们可以知道如下的一些内容,ArrayList集合里存储的是字符串.遍历ArrayList集合,把数据获取到.然后存储到文本文件中.文本文件说明使用字符流. (2) 数据源: ArrayList<String> -- 遍历得到每一个字符串数据 目的地: a.txt -- FileWriter -- BufferedWriter 2. 代码示例: 1 pack

Java基础知识强化之IO流笔记68:Properties和IO流集合使用

1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public void store(Writer writer,String comments):把集合中的数据存储到文件 2. 代码实现: 1 package cn.itcast_08; 2 3 import java.io.FileReader; 4 import java.io.FileWriter; 5 i

Java基础知识强化之IO流笔记47:IO流练习之 随机获取文本文件中的姓名案例

1.  随机获取文本文件中的姓名案例     需求:我有一个文本文件中存储了几个名称,请大家写一个程序实现随机获取一个人的名字.     分析:           A:  把文本文件中的数据存储到集合中           B:  随机产生一个索引           C:  根据该索引获取一个值 2. 代码实现: 1 package cn.itcast_02; 2 3 import java.io.BufferedReader; 4 import java.io.FileReader; 5