在Java中使用TreeSet比较器()方法的示例

在Java中使用TreeSet比较器()方法的示例

TreeSet是Java中最重要的SortedSet接口实现之一,使用Tree进行存储。使用它们的自然排序来维护元素的顺序,无论是否提供了显式比较器。如果要正确实现Set接口,则必须与equals一致。

java.util.TreeSet中存在 comparator()方法 ,它共享设置和返回可用于对TreeSet中元素进行排序的比较器的重要函数。如果集合遵循元素自然排序模式,则该方法返回Null值。

语法:

comp_set = (TreeSet)tree_set.comparator()

参数: 该方法不接受任何参数。

返回值: 比较器集用于按特定顺序对集合的元素进行排序。如果集合遵循默认或自然排序模式,则返回Null值。

在这里,我们将提出两个示例,下面的一个示例我们将使用元素的自然排序,稍后再使用特定的比较器来更好地理解它。

示例1: 使用元素的自然排序

// Java程序示例演示了使用comparator()方法
//使用元素的自然排序
  
//导入实用程序类
import java.util.*;
  
//主类
//TreeSet演示类
public class GFG {
  
    //主驱动程序方法
    public static void main(String[] args)
    {
  
        //创建一个整数类型的空TreeSet
        TreeSet<Integer> tree_set = new TreeSet<Integer>();
  
        //使用add()方法向集合中添加元素
        tree_set.add(20);
        tree_set.add(24);
        tree_set.add(30);
        tree_set.add(35);
        tree_set.add(45);
        tree_set.add(50);
  
        //打印TreeSet对象中的元素
        System.out.println("Tree Set values are: "
                           + tree_set);
  
        //创建一个比较器
        Comparator comp = tree_set.comparator();
  
        //打印并显示比较器值
        System.out.println("Since the Comparator value is: "
                           + comp);
        
        //仅显示消息
        System.out.println("it follows natural ordering");
    }
}

输出:

Tree Set values are: [20, 24, 30, 35, 45, 50]
Since the Comparator value is: null
it follows natural ordering

示例2: 使用特定的比较器

// Java代码以说明使用比较器()
// 当使用特定比较器时
  
// 导入Comparator和TreeSet类
// 来自java.util包
import java.util.Comparator;
import java.util.TreeSet;
  
// 类1
// Helper类
class Helper implements Comparator<String> {
  
    // 方法
    // 比较两个字符串
    public int compare(String str1, String str2)
    {
  
        String first_Str;
        String second_Str;
  
        first_Str = str1;
        second_Str = str2;
  
        // 使用compareTo()保证
        return second_Str.compareTo(first_Str);
    }
}
  
// 主类
// TreeSetDemo类
public class GFG {
  
    // 主驱动程序
    public static void main(String[] args)
    {
  
        // 创建一个字符串类型的空TreeSet
        TreeSet<String> tree_set = new TreeSet<String>();
  
        // 使用add()方法将元素添加到TreeSet对象中
        tree_set.add("G");
        tree_set.add("E");
        tree_set.add("E");
        tree_set.add("K");
        tree_set.add("S");
        tree_set.add("4");
  
        // 在使用比较器之前打印集合中的元素
        System.out.println("使用比较器之前的集合:" + tree_set);
  
        // 再次创建一个字符串类型的空TreeSet
        // 引用Helper类
        TreeSet<String> tree_set1 = new TreeSet<String>(new Helper());
  
        // 使用add()方法将元素添加到TreeSet对象中
        tree_set1.add("G");
        tree_set1.add("E");
        tree_set1.add("E");
        tree_set1.add("K");
        tree_set1.add("S");
        tree_set1.add("4");
  
        // 在使用比较器之前打印集合中的元素
        System.out.println("元素按降序排序:" + tree_set1);
    }
}

输出

使用比较器之前的集合:[4, E, G, K, S]
元素按降序排序:[S, K, G, E, 4]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程