Java:查找可导航集的上一个和下一个值

Anan Mao

我现在有一个可导航的集合来存储整数,如何从特定元素中找到上一个和下一个元素?如果您可以找到这些元素,我不确定如何使用迭代器。

例子:

NavigableSet<Integer> values = new TreeSet<>(List.of(1, 2, 3, 4, 5));

让我们说,鉴于3,我想接触2(上一个)或4(下一个)。

扎布扎尔

较高低

查看官方文档:NavigableSet

有方法

  • higher: 返回这个集合中严格大于给定元素的最小元素,或者null如果没有这样的元素。
  • lower: 返回这个集合中严格小于给定元素的最大元素,或者null如果没有这样的元素。

例子:

TreeSet<Integer> values = new TreeSet<>(List.of(1, 2, 4));

// 3 is not contained
int lower1 = values.lower(3); // 2
int higher1 = values.higher(3); // 4

// 2 is contained
int lower2 = values.lower(2); // 1
int higher2 = values.higher(2); // 4

天花板和地板

如果您不是在寻找严格的更大或更小,也有

  • ceiling: 返回此集合中大于或等于给定元素的最小元素,或者null如果没有这样的元素。
  • floor: 返回这个集合中小于或等于给定元素的最大元素,或者null如果没有这样的元素。

例子:

TreeSet<Integer> values = new TreeSet<>(List.of(1, 2, 4));

// 3 is not contained
int lower1 = values.floor(3); // 2
int higher1 = values.ceiling(3); // 4

// 2 is contained
int lower2 = values.floor(2); // 2
int higher2 = values.ceiling(2); // 2

笔记

null如果没有这样的元素,请小心返回的方法特别是如果您自动拆箱到int. IE

int result = values.lower(1);

将与NullPointerException. 如果您想首先检查是否存在,请坚持Integer而不是int

还有更多的方法可以做类似的事情,比如headSetor tailSet,之后你也可以将它们与迭代器结合起来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP如何导航到数组中的上一个和下一个值

也可以访问上一个和下一个值的Python循环

SQL查询以查找上一个日期,当前日期和下一个日期

dplyr mutate函数可垂直计算列(当前,上一个,下一个)中的值

Julia-for循环中的上一个和下一个值

比较熊猫系列中的上一个值和下一个值

如何在MSSQL中查找天的上一个和下一个值?

使用数组计算上一个和下一个值

从日期数组中查找上一个和下一个最近的日期

CSS滚动捕捉点以及导航(下一个,上一个)按钮

根据上一个和下一个值过滤熊猫数据框

获得与上一个值和下一个值的差异

查找下一个较小和下一个较大的值

比较Pandas列中的上一个和下一个不同的值

mongodb-在聚合框架中查找上一个和下一个文档

在单个页面中导航的上一个和下一个按钮

字典中上一个和下一个值的平均值

分页下一个上一个

棱镜导航-上一个和下一个视图

下一个div,上一个div导航

多个文件的less命令:如何导航到下一个/上一个

上一个/下一个点击

如何从日期变量中查找下一个和上一个日期

jQuery,Bootstrap导航-如何添加上一个/下一个按钮?

创建上一个/下一个html页面导航

如何在PHP的文件夹中显示下一个和上一个导航?

上一个和下一个按钮之间的文本框,以导航到表格中

查找下一个值

填充数字和字符列,条件是上一个值和下一个值相等