爪哇 2博客
 爪哇 2博客

爪哇 中的TreeSet

在这篇文章中,我们将在Java中看到TreeSet。
爪哇 树集 具有以下属性:

  • 它只能包含唯一元素。
  • 默认情况下,它以升序存储对象,
  • 它实现了NavigableSet接口,该接口扩展了SortedSet。
  • 将对象放入TreeSet时,它必须实现Comparable接口。

让我们借助示例进一步了解它。

例:

1)创建一个名为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
28
 
com . 组织 . Arpit . 爪哇 2blog;
上市 国家 实施 可比{
 
     国家的名字;
 
     上市 国家 ( 国家的名字) {
        ();  
         这个 .国家的名字 = 国家的名字;
    }
 
    @ 覆写
     上市 整型 相比于( 目的 arg0) {
         国家 国家 =( 国家 ) arg0;
 
         返回 ( 这个 .国家的名字.相比于( 国家 .国家的名字) ) ;
    }
 
     上市 getCountryName() {
         返回 国家的名字;
    }
 
     上市 虚空 setCountryName( 国家的名字) {
         这个 .国家的名字 = 国家的名字;
    }
 
}
 


2)创建TreeSetMain.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
 
com . 组织 . Arpit . 爪哇 2blog;
 
进口 爪哇 . 实用程序 . 迭代器 ;
进口 爪哇 . 实用程序 . 树集 ;
 
上市 树集 Main {
 
/ **
  * @作者Arpit Mandliya
  */
上市 静态的 虚空 主要 ([] args ) {
   国家 印度国家= 国家 ( “印度” );
   国家 中国国家= 国家 ( “中国” );
   国家 尼泊尔国家= 国家 ( “尼泊尔” );
   国家 不丹国家= 国家 ( “不丹” );
   国家 印度国家2= 国家 ( “印度” );
   国家 尼泊尔国家2= 国家 ( “尼泊尔” );
 
   树集 国家 树集 = 树集 ();
   国家 树集 .(印度国家);
   国家 树集 .(中国国家);
   国家 树集 .(尼泊尔国家);
   国家 树集 .(不丹国家);
   国家 树集 .(印度国家2);
   国家 树集 .(尼泊尔国家2);
 
   迭代器 律师 = 国家 树集 . 迭代器 (); //在此处放置调试点
  ( 律师 . hasNext ())
  {
   系统 .. 打印 ( 律师 . 下一个 ().国家的名字);
  }
}
 
}
 

当您运行上面的程序时,您将得到以下结果:

1
2
3
4
5
6
 
不丹
中国
印度
尼泊尔
 

如您所见,我们在树集中添加了6个国家对象,但我们只有4个!由于TreeSet只能具有唯一元素,因此indiaCountry2和nepalCountry2没有添加到TreeSet中。说明:

将indiaCountry2放入treeSet时,它将将此对象与indiaCountry进行比较,如indiaCountry2.compareTo(indiaCountry),compareTo方法将返回0。两个对象将被视为相等。由于您无法在TreeSet中添加重复元素,因此indiaCountry2将不会添加到上述TreeSet中。

现在将调试点放在第27行,然后右键单击项目->debug as-> 爪哇 应用程序。程序将在第27行停止执行,然后右键单击countryTreeSet然后选择watch。您将能够看到如下结构。

 爪哇 中的TreeSet

关于TreeSet的棘手问题: 

猜测以下程序的输出:

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
 
com . 组织 . Arpit . 爪哇 2blog;
进口 爪哇 . 实用程序 . 迭代器 ;
进口 爪哇 . 实用程序 . 树集 ;
上市 雇员 实施 可比 {
上市 名称 ;
上市 整型 相比于( 目的 o) {
   返回 0;
}
上市 静态的 虚空 主要 ( args [])
{
   雇员 员工一 = 雇员 ();
   雇员 员工二 = 雇员 ();
  员工一. 名称 = "约翰";
  员工二. 名称 = “马丁” ;
   树集 employeeSet = 树集 ();
  employeeSet.(员工一);
  employeeSet.(员工二);
   迭代器 empIt =employeeSet. 迭代器 ();
  ( empIt . hasNext ())
  {
   系统 .. 打印 ( empIt . 下一个 (). 名称 );
  }
}
}
 

上面程序的输出是什么:
马丁
B. 约翰
C. 约翰
马丁
D.编译失败。
E. The 码 runs with no 出 put.
F.在运行时引发异常。

正确答案是B。

说明:

如您所见,我们在Employee类中重写了compareTo方法,并且始终返回0。
将执行以下步骤:

  • 第一个元素“John”将被添加到employeeSet中。
  • 当我们在马丁中添加第二个元素时,compareTo方法将被employeeOne.compareTo(employeeTwo)调用并返回0。
  • 由于compareTo方法返回0,employeeOne等于employeeTwo,因此employeeTwo将不会添加到treeSet中。
  • 所以上面程序的输出是“John”
请通过  爪哇 面试程序 有关更多此类程序。

导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 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-601dbadcaaf30575332978 /]让’s创建一个程序来实现2d Arraylist 爪哇 。 [crayon-601dbadcaaf37431997793 /]输出:list3中的第二个元素:List3_Str2 list1中的第三个元素:List1_Str3 list2中的第一个元素[…]

  • 04 May

    哈希图 如何在Java中工作

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

  • 10月21日

    如何在Java中对HashSet进行排序

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

  • 10月20日

    要设置的Java数组

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

发表评论

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

订阅我们的新闻

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


成为朋友

©2020 爪哇 2博客