gpt4 book ai didi

java - 在 Java 中获取用户定义类的闭区间子集

转载 作者:行者123 更新时间:2023-12-02 11:10:48 26 4
gpt4 key购买 nike

As per Java API :

The following one-liner tells you how many words between "doorbell" and "pickle", including doorbell and pickle, are contained in the dictionary.

count = dictionary.subSet("doorbell", "pickle\0").size();

据我了解,对于一组字符串元素,附加“\0”将起作用,而对于一组整数元素,使用+1将起作用。

如果集合包含用户定义的对象,subset() 给出半开范围。

count = employee.subSet(obj1, obj6).size();

我想知道在这种情况下是否有任何可能的方法来获得封闭范围。

最佳答案

对于 NavigableSet(例如 TreeSet),您可以简单地使用 subSet overload which takes inclusivity parameters :

employee.subSet(obj1, true, obj6, true)

对于一般的 SortedSet,您可以执行此操作的唯一方法是:

  1. 定义一些构造“刚好超出”上限的Employee的概念。

    您可以通过了解类的内部结构来做到这一点,例如如果员工按姓氏排序,并且您的姓氏上限为“Turner”,则您可以构造一个名为“Turner\0”的员工。

  2. 通过迭代集合“手动”执行此操作:

    SortedSet<Employee> subset = employees.tailSet(obj1);
    for (Employee employee : subset) {
    if (employee.compareTo(obj6) < 0) {
    subset = subset.headSet(obj6);
    break;
    }
    }

关于java - 在 Java 中获取用户定义类的闭区间子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50638746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com