ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

TreeSet

2021-12-20 22:02:12  阅读:173  来源: 互联网

标签:iterator Person add new TreeSet treeSet


 1 package settest;
 2 
 3 import listtest.Person;
 4 import org.junit.Test;
 5 
 6 import java.util.Comparator;
 7 import java.util.Iterator;
 8 import java.util.TreeSet;
 9 
10 /**
11  *
12  *
13  * @author FuJingchao
14  * @Date: 2021/12/20 - 20:28
15  */
16 public class TreeSetTest {
17     /*
18     1.向TreeSet中添加的数据,要求是相同类的对象
19     2.两种排序方式:自然排序(实现Comparable接口)和定制排序(和Comparator接口相关)
20 
21     3.自然排序中,比较两个对象是否相同的标准为:compareTo()返回0,不再是equals()
22       定制排序中,比较两个对象是否相同的标准为:compare()f返回0,不再是equals()
23      */
24     @Test
25     public void test1() {
26         TreeSet treeSet = new TreeSet();
27         //失败:不能添加不同类的对象
28 //        treeSet.add(123);
29 //        treeSet.add(456);
30 //        treeSet.add("AA");
31 //        treeSet.add(new Person("Tom",12));
32 
33         //成功:举例一
34 //        treeSet.add(12);
35 //        treeSet.add(5);
36 //        treeSet.add(32);
37 //        treeSet.add(-10);
38 //        Iterator iterator = treeSet.iterator();
39 //        while (iterator.hasNext()){
40 //            System.out.println(iterator.next());
41 //        }
42 
43         //成功:举例二
44         treeSet.add(new Person("Tom",12));
45         treeSet.add(new Person("jack",5));
46         treeSet.add(new Person("jim",23));
47         treeSet.add(new Person("bob",23));
48 
49         Iterator iterator = treeSet.iterator();
50         while (iterator.hasNext()){
51             System.out.println(iterator.next());
52         }
53 
54     }
55 
56     //按照年龄从大到小排序,再按照姓名名称从小到大排序
57     @Test
58     public void test3 () {
59         Comparator com = new Comparator() {
60             @Override
61             public int compare(Object o1, Object o2) {
62                 if(o1 instanceof Person && o2 instanceof Person){
63                     Person p1 = (Person) o1;
64                     Person p2 = (Person) o2;
65                     int compare = - Integer.compare(p1.getAge(),p2.getAge());
66                     if(compare != 0){
67                         return compare;
68                     }else {
69                         return p1.getName().compareTo(p2.getName());
70                     }
71                 }
72                 throw new RuntimeException("输入的数据类型不一致!");
73                 }
74         };
75 
76         TreeSet treeSet = new TreeSet(com);
77         treeSet.add(new Person("Tom",12));
78         treeSet.add(new Person("jack",5));
79         treeSet.add(new Person("jim",23));
80         treeSet.add(new Person("bob",23));
81 
82         Iterator iterator = treeSet.iterator();
83         while (iterator.hasNext()){
84             System.out.println(iterator.next());
85         }
86 
87     }
88 
89 
90 }

 

标签:iterator,Person,add,new,TreeSet,treeSet
来源: https://www.cnblogs.com/fu-sir/p/15713124.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有