如何在Java中使用Comparable接口创建TreeMap对象?
TreeMap是Java集合框架的一个类,它实现了NavigableMap接口。它以树形结构存储映射元素,并提供了一种高效的替代方案,可以按排序顺序存储键值对。请注意,在创建TreeMap对象时,我们需要使用Comparable接口,以便维护其元素的排序顺序。在本文中,我们将讨论一些使用Comparable接口创建TreeMap对象的Java程序。
使用Comparable接口创建TreeMap对象的Java程序
在直接跳转到Java程序之前,让我们简要了解一下Comparable接口的基础知识。
Comparable接口
当我们想要按其自然顺序对自定义对象进行排序时,此接口非常有用。例如,它按字典顺序对字符串进行排序,按数值顺序对数字进行排序。此接口位于“java.lang”包中。通常,默认情况下可以使用在此包中定义的类和接口,因此无需显式导入此包。
语法
class nameOfclass implements Comparable
这里,class是创建类的关键字,implements是启用接口提供的功能的关键字。
compareTo()
Comparable接口只定义了一个名为“compareTo”的方法,可以重写该方法以对对象集合进行排序。它提供了比较一个类的对象本身的功能。当“this”对象等于传递的对象时,它返回0;如果“this”对象大于传递的对象,则返回正值;否则返回负值。
语法
compareTo(nameOfclass nameOfobject);
由于TreeMap按排序顺序以键值对的形式存储其元素,因此我们需要使用Comparable接口,否则将遇到ClassCastException。
示例
以下示例说明了在创建TreeMap中使用Comparable接口。
方法
创建一个实现Comparable接口的类“TrMap”。在其中,声明两个变量,并定义此类的构造函数以及两个参数“item”和“price”,类型分别为字符串和双精度浮点数。
接下来,我们将使用“toString()”方法将对象的数据转换为字符串。然后,定义“compareTo”方法以及作为参数的“TrMap”类对象,以将“this”对象与新创建的对象进行比较。
现在,在main()方法中,声明一个名为“obj”的TreeMap类的“TrMap”对象,并使用名为“put()”的内置方法将对象详细信息存储到其中。“item”是键,其对应的值是“price”。
最后,在foreach循环中使用“keySet()”方法检索并打印与键关联的值。
示例
import java.util.*;
import java.lang.*;
public class TrMap implements Comparable<TrMap> {
String item;
int price;
TrMap(String item, int price) {
// this keyword shows these variables belong to constructor
this.item = item;
this.price = price;
}
// method for converting object into string
public String toString() {
return "Item: " + item + ", " + "Price: " + price;
}
public String getName() {
return this.item;
}
// overriding method
public int compareTo(TrMap comp) {
return this.item.compareTo(comp.item);
}
public static void main(String[] args) {
// Declaring collection TreeMap
TreeMap<String, TrMap> obj = new TreeMap<>();
// Adding object to the obj map
TrMap obj1 = new TrMap("TShirt", 495);
obj.put(obj1.getName(), obj1);
TrMap obj2 = new TrMap("Shirt", 660);
obj.put(obj2.getName(), obj2);
TrMap obj3 = new TrMap("Kurti", 455);
obj.put(obj3.getName(), obj3);
// printing details obj map
System.out.println("Elements of the map: ");
for (String unKey : obj.keySet()) {
System.out.println(obj.get(unKey));
}
}
}
输出
Elements of the map: Item: Kurti, Price: 455 Item: Shirt, Price: 660 Item: TShirt, Price: 495
在上面的输出中,元素是根据项目名称排序的。
结论
我们从定义Java集合框架的TreeMap类开始本文,在后面的部分中,我们介绍了Comparable接口及其名为compareTo的内置方法。最后,我们讨论了一个Java程序,以便更好地理解在创建TreeMap中使用Comparable接口。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP