2博客
2博客

爪哇 中的TreeMap示例

树状图类实现类似于HashMap的Map。

有关TreeMap的一些重要点:

  1. 树状图实现Map接口并扩展HashMap类。
  2. 树状图是使用基于红黑树的NavigableMap来实现的。
  3. 树状图是有序集合,并以键的自然顺序存储其元素。
  4. 您要放入TreeMap中的密钥必须实现Comaparable接口,或者可以使用Comparator进行自定义排序
例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
组织 .Arpit.爪哇2blog;
 
进口 爪哇. 实用程序 .树状图;
 
上市 树状图Main {
 
    上市 静态的 虚空 主要 ( args [])
    {
        //以国家/地区为键,资本为值的TreeMap
        // 树状图以键的自然顺序存储元素。
        树状图<,> 国家CapitalMap= 树状图<,>();
        国家CapitalMap.(“印度”,“德里”);
        国家CapitalMap.(“日本”,“东京”);
        国家CapitalMap.(“法国”,“巴黎”);
        国家CapitalMap.(“俄国”,“莫斯科”);
 
        系统..打印(“ - ---------------------------”);
        //使用keySet()并针对每个循环迭代TreeMap
        系统..打印(“使用keySet()并针对每个循环迭代TreeMap”);
         对于 ( 国家Key:国家CapitalMap.键集()) {
            系统..打印(“国家:”+ 国家Key +“和  Capital:"+国家CapitalMap. 得到 (国家Key));
 
        }
        系统..打印(“ - ---------------------------”);
    }
 
}
 

当您运行上述程序时,将得到以下输出:

1
2
3
4
5
6
7
8
9
 
- - - - - - - - - - - - - - -
反复进行 树状图 使用 键集() 对于 循环
国家:法国   首都:巴黎
国家:印度   首都:新德里
国家:日本   首都:东京
国家:俄国   首都:莫斯科
- - - - - - - - - - - - - - -
 

如您所见,它以Key(Country)的升序排序

如果要自定义排序而不是自然排序怎么办:

如果要自定义排序,则可以使用下面的TreeMap构造函数。您可以定义自己的比较器。

1
2
3
 
树状图 国家CapitalMap= 树状图(比较器 补偿 );
 

示例:如下创建Country.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
组织 .Arpit.爪哇2blog;  
上市 国家 {  
 
     名称 ;  
     人口;  
 
    上市 国家( 名称 , 人口) {  
        ();  
         这个 .名称 = 名称 ;  
         这个 .人口 = 人口;  
    }  
    上市 得到 Name() {  
        返回 名称 ;  
    }  
    上市 虚空 setName( 名称 ) {  
         这个 .名称 = 名称 ;  
    }  
    上市 得到 Population() {  
        返回 人口;  
    }  
    上市 虚空 setPopulation( 人口) {  
         这个 .人口 = 人口;  
    }  
 
}
 

创建TreeMapCompMain,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
组织 .Arpit.爪哇2blog;
 
进口 爪哇. 实用程序 .比较器;
进口 爪哇. 实用程序 .迭代器;
进口 爪哇. 实用程序 .树状图;
 
上市 树状图CompMain {
 
    上市 静态的 虚空 主要 ([] args )
    {
        国家 印度= 国家(“印度”,1000);  
        国家 日本= 国家(“日本”,10000);  
 
        国家 法国= 国家(“法国”,2000);  
        国家 俄国= 国家(“俄国”,20000);  
 
        比较器 比较器= 比较器() {
 
            @覆写
            上市 整型 相比(国家 o1, 国家 o2) {
                返回 o2. 得到 Name().相比于(o1. 得到 Name());
            }
        };
 
        系统..打印(“按相反的国家名称排序TreeMap”);
        树状图<国家, > 国家CapitalMap= 树状图<国家,>(比较器);  
        国家CapitalMap.(印度,“德里”);  
        国家CapitalMap.(日本,“东京”);  
        国家CapitalMap.(法国,“巴黎”);  
        国家CapitalMap.(俄国,“莫斯科”);  
 
        迭代器 国家CapitalIter=国家CapitalMap.键集().迭代器();//将调试点放在这一行  
        (国家CapitalIter.hasNext())  
        {  
            国家 国家Obj=国家CapitalIter. 下一个 ();  
             首都=国家CapitalMap. 得到 (国家Obj);  
            系统..打印(国家Obj. 得到 Name()+“ - --”+首都);  
        }  
    }  
 
}
 

当您运行上述程序时,将获得以下输出:

1
2
3
4
5
6
7
 
排序 树状图 逆转 订购 国家 名称
俄国 - - 莫斯科
日本 - - 东京
印度 - - 新德里
法国 - - 巴黎
 

您可以将HashMap传递给TreeMap的构造函数以对Key进行排序

1
2
3
 
树状图 国家CapitalMap= 树状图( 地图 );
 

通过将HashMap传递给TreeMap的构造函数,可以对TreeMap进行排序。

例: 
如下创建Country.java。它应该实现Comparable接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
组织 .Arpit.爪哇2blog;  
上市 国家 实施 可比 {  
 
     名称 ;  
     人口;  
 
    上市 国家( 名称 , 人口) {  
        ();  
         这个 .名称 = 名称 ;  
         这个 .人口 = 人口;  
    }  
    上市 得到 Name() {  
        返回 名称 ;  
    }  
    上市 虚空 setName( 名称 ) {  
         这个 .名称 = 名称 ;  
    }  
    上市 得到 Population() {  
        返回 人口;  
    }  
    上市 虚空 setPopulation( 人口) {  
         这个 .人口 = 人口;  
    }
    @覆写
    上市 整型 相比于(目的 o) {
        国家 国家=(国家) o;
        返回 这个 . 得到 Name().相比于(国家. 得到 Name());
    }  
 
}  
 

如下创建TreeMapCompMain.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
组织 .Arpit.爪哇2blog;
 
进口 爪哇. 实用程序 .哈希图;
进口 爪哇. 实用程序 .迭代器;
进口 爪哇. 实用程序 .树状图;
 
上市 树状图CompMain {
 
    上市 静态的 虚空 主要 ([] args )
    {
        国家 印度= 国家(“印度”,1000);  
        国家 日本= 国家(“日本”,10000);  
 
        国家 法国= 国家(“法国”,2000);  
        国家 俄国= 国家(“俄国”,20000);  
 
        哈希图<国家, > 国家CapitalMap= 哈希图<国家,>();  
        国家CapitalMap.(印度,“德里”);  
        国家CapitalMap.(日本,“东京”);  
        国家CapitalMap.(法国,“巴黎”);  
        国家CapitalMap.(俄国,“莫斯科”);  
 
        系统..打印(“通过将HashMap传递给TreeMap构造函数进行排序”);
        树状图<国家,> sortedTreeMapCountryCapital=  树状图<国家,> (国家CapitalMap);
        迭代器 国家CapitalIter=sortedTreeMapCountryCapital.键集().迭代器();//将调试点放在这一行  
        (国家CapitalIter.hasNext())  
        {  
            国家 国家Obj=国家CapitalIter. 下一个 ();  
             首都=国家CapitalMap. 得到 (国家Obj);  
            系统..打印(国家Obj. 得到 Name()+“ - --”+首都);  
        }  
    }  
 
}
 

运行程序时,将获得以下输出:
1
2
3
4
5
6
7
 
排序 哈希图 通过 通过 树状图 建设者
法国 - - 巴黎
印度 - - 新德里
日本 - - 东京
俄国 - - 莫斯科
 

导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 10月02

    用Java中的值初始化ArrayList

    在本文中,我们将学习使用Java中的值初始化ArrayList。 数组列表是Java中List接口的实现类。它用于存储元素。它基于动态增长的阵列概念。我们可以通过几种方式用值初始化ArrayList。让’我们看到了其中一些…]

  • 3月17日

    8中的PriorityQueue

    在本文中,我们将介绍Java 8 PriorityQueue。当应该根据对象的优先级处理对象时,在这种情况下,我们使用PriorityQueue。这是一种特殊的队列(也称为非绑定队列),可以根据元素的自然顺序或基于[…]

  • 10月06日

    2d Arraylist 爪哇 示例

    在本文中,我们将看到如何在Java中创建2d Arraylist。创建2d Arraylist的最佳方法是在Java中创建列表的列表。 [crayon-601ef515c720b386018841 /]让’s创建一个程序来实现2d Arraylist 爪哇。 [crayon-601ef515c720f030252586 /]输出:list3中的第二个元素:List3_Str2 list1中的第三个元素:List1_Str3 list2中的第一个元素[…]

  • 04 May

    哈希图如何在Java中工作

    最常见的面试问题是<code>HashMap如何在Java中工作</code>, “HashMap的获取和放置方法如何在内部工作”。在这里,我试图通过一个简单的示例来解释内部功能。 [crayon-601ef515d99ad106007711-i /]是Java中使用最广泛的Collections之一,与其从理论上讲,不如从理论上入手,这样您就可以[…]

  • 10月21日

    如何对HashSet进行排序

    在本文中,我们将看到如何在Java中对HashSet进行排序。 哈希集是一个不按任何顺序存储元素的集合。您可能会遇到需要对HashSet进行排序的情况。排序HashSet的方法有很多种,我们将在这里看到两种方法。使用TreeSet可以使用[…]

  • 10月20日

    设置数组

    在本文中,我们将学习Java数组设置转换。有很多方法可以将数组转换为set。 1.使用Java 8’s Stream如果您使用的是Java 8,建议您使用此方法。 [crayon-601ef515da3bc386979412 /]输出[John,Martin,Mary] 2.使用HashSet构造函数()我们可以直接调用HashSet‘s的java构造函数set […]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 2博客